diff --git a/packages/follower-livedata/follower.js b/packages/follower-livedata/follower.js index 7118894849..8763dc3e69 100644 --- a/packages/follower-livedata/follower.js +++ b/packages/follower-livedata/follower.js @@ -79,7 +79,13 @@ Follower = { var tryElector = function (url) { url = url || findFewestTries(); - //console.log("trying", url, electorTries, tryingUrl); + // console.log("trying", url, electorTries, tryingUrl); + + // Don't keep trying the same url as fast as we can if it's not working. + if (electorTries[url] > 2) { + Meteor._sleepForMs(3 * 1000); + } + if (conn) { conn._reconnectImpl({ url: url diff --git a/packages/webapp/package.js b/packages/webapp/package.js index fdfc9a11b9..bdd4c6d862 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -9,7 +9,7 @@ Npm.depends({connect: "2.9.0", Package.on_use(function (api) { api.use(['logging', 'underscore', 'routepolicy'], 'server'); - api.use(['application-configuration', 'livedata'], { + api.use(['application-configuration', 'follower-livedata'], { unordered: true }); // At response serving time, webapp uses browser-policy if it is loaded. If diff --git a/packages/webapp/webapp_server.js b/packages/webapp/webapp_server.js index 7a8c210aba..11f59ff21c 100644 --- a/packages/webapp/webapp_server.js +++ b/packages/webapp/webapp_server.js @@ -429,8 +429,8 @@ var runWebAppServer = function () { if (proxyBinding) proxyBinding.stop(); if (configuration && configuration.proxy) { - proxyBinding = AppConfig.configureService(configuration.proxyServiceName || - "proxy", function (proxyService) { + var proxyServiceName = configuration.proxyServiceName || "proxy"; + proxyBinding = AppConfig.configureService(proxyServiceName, function (proxyService) { if (proxyService.providers.proxy) { var proxyConf; if (process.env.ADMIN_APP) { @@ -447,7 +447,7 @@ var runWebAppServer = function () { Log("Attempting to bind to proxy at " + proxyService.providers.proxy); WebAppInternals.bindToProxy(_.extend({ proxyEndpoint: proxyService.providers.proxy - }, proxyConf)); + }, proxyConf), proxyServiceName); } }); } @@ -468,7 +468,7 @@ var runWebAppServer = function () { }; }; -WebAppInternals.bindToProxy = function (proxyConfig) { +WebAppInternals.bindToProxy = function (proxyConfig, proxyServiceName) { var securePort = proxyConfig.securePort || 4433; var insecurePort = proxyConfig.insecurePort || 8080; var bindPathPrefix = proxyConfig.bindPathPrefix || ""; @@ -498,8 +498,12 @@ WebAppInternals.bindToProxy = function (proxyConfig) { }; // This is run after packages are loaded (in main) so we can use - // DDP.connect. - var proxy = Package.livedata.DDP.connect(proxyConfig.proxyEndpoint); + // Follower.connect. + var proxy = Package["follower-livedata"].Follower.connect( + proxyConfig.proxyEndpoint, { + group: proxyServiceName + } + ); var route = process.env.ROUTE; var host = route.split(":")[0]; var port = +route.split(":")[1];