2

我在一个特定的无线网络中遇到了一个奇怪的问题:集合无法访问,并且在执行collection.find().fetch(). 我可以向 minimongo 添加新文档(并找到它们),但我从来没有看到从 mongodb 加载的文档,也没有新文档同步到服务器。请记住,这只发生在一个特定的无线网络中。

此行为仅在部署到我自己的服务器时发生,而不是在部署到 meteor.com 时发生

流星项目本身只是一个文件:

Players = new Meteor.Collection("players");

if (Meteor.isClient) {
  Meteor.subscribe("players");
}

if (Meteor.isServer) {
  Meteor.publish("players", function() {
    return Players.find();
  });
}

安装的软件包是

# Meteor packages used by this project, one per line.
#
# 'meteor add' and 'meteor remove' will edit this file for you,
# but you can also edit it by hand.

preserve-inputs
standard-app-packages
insecure

版本是 0.6.5

我直接在 Javascript 控制台中进行测试。

Players.insert({name:'test2'})将创建一个新文档,但在重新加载后执行此文档时找不到该文档Players.find().fetch()。在meteor.com 上,重新加载后可以找到该文档。

meteor.com 部署http://testcollections.meteor.com/ 地址:我自己部署的地址:http://146.185.130.93/

任何指针将不胜感激。

4

1 回答 1

0

听起来有点像连接的 websocket 位没有通过连接。在流星中有两个连接,一个包含 html、图像和 js(看起来像它的工作)的静态连接,另一个通过处理数据和实时更新的 websockets。

您可以在 Chrome 的 javascript 错误控制台中检查 400 websocket 错误,在这种情况下,它会尝试进入长轮询,这需要相当长的时间。

它可能是困扰您的代理之类的东西。我在没有 HTTP 代理的情况下遇到了这个问题,但也遇到了不可见的 socks 代理(通过 iptables)。

如果出现上述情况,您也可以通过检查Meteor.status()哪个表示其“等待”来快速检查。

于 2013-08-20T20:51:29.487 回答