如何防止meteor.local的负载(使用phonegap构建ios应用程序时)

Posted

技术标签:

【中文标题】如何防止meteor.local的负载(使用phonegap构建ios应用程序时)【英文标题】:How to prevent load of meteor.local (when building ios app with phonegap) 【发布时间】:2015-05-11 00:09:52 【问题描述】:

这是我向here 提出的一个问题的延伸,该问题没有得到答复。我正在尝试在我自己的远程服务器上托管的 iPad 上使用 Meteor 应用程序。问题是当我运行以下命令时,应用程序构建成功:

sudo meteor run ios-device --mobile-server=XXXX:XXXX

当我单击 Xcode 中的构建按钮以将应用程序部署到我的设备时,问题就开始了。似乎一切正常,甚至从我的远程服务器加载数据。但几秒钟后,它会恢复到本地数据库/构建。当我检查 Xcode 日志时,它显示“已完成 http://meteor.local/ 的加载”,因此它似乎正在用新的本地数据覆盖远程数据。我不确定我是否启用了导致 Xcode 加载本地数据库的某些功能,或者我是否必须关闭某些功能以防止其加载。

更新:

我已经使用 Jey DWork 的建议解决了这个问题,以在 Meteor 服务器启动中应用缺少的环境变量。

我添加的是:

Meteor.absoluteUrl.defaultOptions.rootUrl
process.env.ROOT_URL
process.env.MOBILE_ROOT_URL 
process.env.MOBILE_DDP_URL

如果不设置这些,ROOT_URL 似乎在初始加载后被覆盖。由于这些环境变量似乎没有记录在案,我仍然会搜索并查看是否有针对此问题的不同解决方案(因为该应用程序必须多次重新加载才能使用它似乎很奇怪) .不过,就目前而言,这是一个临时解决方案。

【问题讨论】:

另外,我没有使用 Xcode 并且正在为 android 构建您的问题(几秒钟后使用本地数据而不是远程数据)听起来我目前遇到的问题也非常熟悉(@ 987654323@)。你能用Meteor.startup(function() console.log(__meteor_runtime_config__.ROOT_URL); )之类的东西检查你的ROOT_URL是否发生了变化吗?如果它改变了之前和之后的值,在这种情况下,问题可能根本与 Xcode 无关。 设置 ROOT_URL 变量不会做任何改变。它似乎获得了正确的负载信息,但随后在调用资产的过程中调用了 meteor.local。 我刚刚发现有更多变量存储根 URL 并且当 Cordova 客户端正在连接时 Meteor 服务器正在使用 process.env.MOBILE_DDP_URLprocess.env.MOBILE_ROOT_URL 并且还将这些变量发布到客户端和在那里触发重新连接。在 Meteor.startup() 功能服务器端将这些变量设置为我的真实 URL 解决了我在 ***.com/q/28889748/2543628 的问题。也许你也应该尝试一下。至少它不应该受到伤害...... 这是一个很棒的发现,不知道为什么它没有记录在案。不幸的是,它似乎并没有解决我的问题。你能发布你用来启动移动服务器的命令吗?我注意到的一件事是,如果我在 linux 中启动我的应用程序,它会显示“应用程序运行在:自定义 IP 地址”,但是当我在 iOS 上启动它(我试图让 iPad 版本正常工作)时,它会显示“应用程序在本地主机上运行:3000")。该应用程序完全相同,所以我不确定差异来自哪里...... 我的过程是这样的: 1)用ROOT_URL="http://10.0.2.10:3000" meteor --port 3000启动服务器; 2) 现在我在Meteor.startup() 中将Meteor.absoluteUrl.defaultOptions.rootUrlprocess.env.ROOT_URLprocess.env.MOBILE_ROOT_URLprocess.env.MOBILE_DDP_URL 设置为我的ROOT_URL 手动服务器端 3) 最后我运行meteor run android-device --mobile-server http://10.0.2.10:3000/,请注意我在与服务器同步的本地 PC,因为我的手机没有与服务器的 USB 连接。这对我有用... 【参考方案1】:

看看这篇文章:

我已经理解了我的问题,也许你的问题是一样的,所有的解释都在这里:***.com/questions/34658956/

您的智能手机应用必须使用 --server=http://IP:PORT 参数构建 和 您的服务器应用必须使用 --mobile-server http://IP:PORT 参数启动

【讨论】:

以上是关于如何防止meteor.local的负载(使用phonegap构建ios应用程序时)的主要内容,如果未能解决你的问题,请参考以下文章

Web App:高可用性/如何防止单点故障?

pho

0403-Ribbon的基本使用

Jet Kafka负载平衡

如何防止在 ADAM 中创建重复对象?

这个 JWT 实现是不是可以防止 XSS 和 CSRF 攻击,同时仍然允许我访问有效负载?