mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
Stop livedata from depending on routepolicy.
That brought in all of webapp, which only works on "type: traditional" targets, not server-only. (We really should split the Node DDP Client code from the Node DDP Server code instead.) (Maybe routepolicy should just be part of webapp, or webapp should depend on routepolicy? It's awkward to need to list it separately in various places...)
This commit is contained in:
@@ -10,22 +10,20 @@ Package.on_use(function (api) {
|
||||
api.use(['check', 'random', 'ejson', 'json', 'underscore', 'deps', 'logging'],
|
||||
['client', 'server']);
|
||||
|
||||
// XXX we do NOT require webapp here, because it's OK to use this package on a
|
||||
// server architecture without making a server (in order to do
|
||||
// server-to-server DDP as a client). So if you want to provide a DDP server,
|
||||
// you need to use webapp before you use livedata.
|
||||
// XXX we do NOT require webapp or routepolicy here, because it's OK to use
|
||||
// this package on a server architecture without making a server (in order to
|
||||
// do server-to-server DDP as a client). So if you want to provide a DDP
|
||||
// server, you need to use webapp before you use livedata.
|
||||
|
||||
// Transport
|
||||
api.use('reload', 'client');
|
||||
api.use('routepolicy', 'server');
|
||||
api.add_files(['sockjs-0.3.4.js',
|
||||
'stream_client_sockjs.js'], 'client');
|
||||
api.add_files('stream_client_nodejs.js', 'server');
|
||||
api.add_files('stream_client_common.js', ['client', 'server']);
|
||||
api.add_files('stream_server.js', 'server');
|
||||
|
||||
// livedata_connection.js uses a Minimongo collection internally to
|
||||
// manage the current set of subscriptions.
|
||||
// we depend on LocalCollection._diffObjects and ._applyChanges.
|
||||
api.use('minimongo', ['client', 'server']);
|
||||
|
||||
api.add_files('writefence.js', 'server');
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
Meteor._routePolicy.declare('/sockjs/', 'network');
|
||||
|
||||
// unique id for this instantiation of the server. If this changes
|
||||
// between client reconnects, the client will reload. You can set the
|
||||
// environment variable "SERVER_ID" to control this. For example, if
|
||||
@@ -14,10 +12,16 @@ Meteor._DdpStreamServer = function () {
|
||||
self.registration_callbacks = [];
|
||||
self.open_sockets = [];
|
||||
|
||||
self.prefix = '/sockjs';
|
||||
// We don't depend directly on routepolicy because we don't want to pull in
|
||||
// webapp stuff if we're just doing server-to-server DDP as a client.
|
||||
if (Meteor._routePolicy)
|
||||
Meteor._routePolicy.declare(self.prefix + '/', 'network');
|
||||
|
||||
// set up sockjs
|
||||
var sockjs = Npm.require('sockjs');
|
||||
self.server = sockjs.createServer({
|
||||
prefix: '/sockjs', log: function(){},
|
||||
prefix: self.prefix, log: function(){},
|
||||
// this is the default, but we code it explicitly because we depend
|
||||
// on it in stream_client:HEARTBEAT_TIMEOUT
|
||||
heartbeat_delay: 25000,
|
||||
@@ -77,6 +81,7 @@ _.extend(Meteor._DdpStreamServer.prototype, {
|
||||
// Redirect /websocket to /sockjs/websocket in order to not expose
|
||||
// sockjs to clients that want to use raw websockets
|
||||
_redirectWebsocketEndpoint: function() {
|
||||
var self = this;
|
||||
// Unfortunately we can't use a connect middleware here since
|
||||
// sockjs installs itself prior to all existing listeners
|
||||
// (meaning prior to any connect middlewares) so we need to take
|
||||
@@ -95,7 +100,7 @@ _.extend(Meteor._DdpStreamServer.prototype, {
|
||||
|
||||
if (request.url === '/websocket' ||
|
||||
request.url === '/websocket/')
|
||||
request.url = '/sockjs/websocket';
|
||||
request.url = self.prefix + '/websocket';
|
||||
|
||||
_.each(oldAppListeners, function(oldListener) {
|
||||
oldListener.apply(app, args);
|
||||
|
||||
@@ -1479,8 +1479,8 @@ _.extend(Package.prototype, {
|
||||
var names = _.union(
|
||||
// standard client packages for the classic meteor stack.
|
||||
// XXX remove and make everyone explicitly declare all dependencies
|
||||
['meteor', 'webapp', 'deps', 'session', 'livedata', 'mongo-livedata',
|
||||
'spark', 'templating', 'startup', 'past', 'check'],
|
||||
['meteor', 'webapp', 'routepolicy', 'deps', 'session', 'livedata',
|
||||
'mongo-livedata', 'spark', 'templating', 'startup', 'past', 'check'],
|
||||
project.get_packages(appDir));
|
||||
|
||||
var arch = sliceName === "server" ? "native" : "browser";
|
||||
|
||||
Reference in New Issue
Block a user