Cordova 配置Meteor mobile应用程序以在运行时连接到不同的服务器

Cordova 配置Meteor mobile应用程序以在运行时连接到不同的服务器,cordova,meteor,Cordova,Meteor,因此,在移动应用程序安装包构建期间指定Meteor服务器URL 当应用程序运行时,是否可以在前端设置Meteor服务器URL 您可以通过命令行“meteor run ios mobile server servername--port port port”执行此操作,但据我所知,此操作已编译到cordova应用程序中,因此无法在运行时从应用程序本身进行设置。这有点笨重,但可以: var app_url = "https://www.other-server.com/"; Meteor.conn

因此,在移动应用程序安装包构建期间指定Meteor服务器URL


当应用程序运行时,是否可以在前端设置Meteor服务器URL

您可以通过命令行“meteor run ios mobile server servername--port port port”执行此操作,但据我所知,此操作已编译到cordova应用程序中,因此无法在运行时从应用程序本身进行设置。

这有点笨重,但可以:

var app_url = "https://www.other-server.com/";

Meteor.connection._stream._changeUrl(app_url);
Meteor.absoluteUrl.defaultOptions.rootUrl = app_url;
Meteor.connection.reconnect();

当您运行此操作时,服务器将从默认服务器更改为
app\u url

中指定的服务器。我尝试了此操作,但似乎什么也没有发生。它仍然连接到旧服务器。@FrancescoFrapporti您是否已禁用应用程序刷新/热代码重新加载?否,在发布时。禁用后我没有尝试。我的问题与此相关:我希望解决方案是通过旧服务器发送热推,使应用程序连接到新服务器(如果容器更新)。我们最终在iOS上进行了本地修复,并在android上对cordova_meteor_加载器进行了更改。
var app_url = "http://new.server/";

Meteor.connection = Meteor.connect(app_url);
_.each(['subscribe', 'methods', 'call', 'apply', 'status','reconnect','disconnect'], function (name) {
        Meteor[name] = _.bind(Meteor.connection[name], Meteor.connection);
});
Package.reload = false;
Accounts.connection = Meteor.connection;