2

我在我的本地机器上开发,浏览器客户端每隔一段时间就会失去连接并且如果没有我手动重新启动浏览器和服务器就无法重新连接。我在服务器日志中看不到任何错误。

OSX 10.8.4,流星 0.6.4.1。谷歌浏览器 28.0.1500.95

关于为什么会发生这种情况的任何想法?

Meteor.status()
Object {status: "waiting", connected: false, retryCount: 2, retryTime: 1376450876245.0037}

...

Meteor.reconnect()
undefined
Meteor.status()
Object {status: "waiting", connected: false, retryCount: 11, retryTime: 1376500323062.412}

蒙神

Thu Aug 15 12:14:59.899 [initandlisten] MongoDB starting : pid=78417 port=27017 dbpath=/data/db/ 64-bit host=Kyles-MacBook.local
Thu Aug 15 12:14:59.900 [initandlisten]
Thu Aug 15 12:14:59.900 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
Thu Aug 15 12:14:59.900 [initandlisten] db version v2.4.2
Thu Aug 15 12:14:59.901 [initandlisten] git version: nogitversion
Thu Aug 15 12:14:59.901 [initandlisten] build info: Darwin Kyles-MacBook.local 12.2.0 Darwin Kernel Version 12.2.0: Sat Aug 25 00:48:52 PDT 2012; root:xnu-2050.18.24~1/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49
Thu Aug 15 12:14:59.901 [initandlisten] allocator: tcmalloc
Thu Aug 15 12:14:59.901 [initandlisten] options: {}
Thu Aug 15 12:14:59.901 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
Thu Aug 15 12:14:59.902 dbexit:
Thu Aug 15 12:14:59.902 [initandlisten] shutdown: going to close listening sockets...
Thu Aug 15 12:14:59.902 [initandlisten] shutdown: going to flush diaglog...
Thu Aug 15 12:14:59.902 [initandlisten] shutdown: going to close sockets...
Thu Aug 15 12:14:59.902 [initandlisten] shutdown: waiting for fs preallocator...
Thu Aug 15 12:14:59.902 [initandlisten] shutdown: lock for final commit...
Thu Aug 15 12:14:59.902 [initandlisten] shutdown: final commit...
Thu Aug 15 12:14:59.902 [initandlisten] shutdown: closing all files...
Thu Aug 15 12:14:59.903 [initandlisten] closeAllFiles() finished
Thu Aug 15 12:14:59.903 [initandlisten] shutdown: removing fs lock...
Thu Aug 15 12:14:59.903 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Thu Aug 15 12:14:59.903 dbexit: really exiting now
    enter code here
4

2 回答 2

0

事实证明,我错误地设置了路线。使用 Meteor-router,我根据过时的教程配置了我的 routes.js 文件。我根据meteor-router文档重写了路线,这让事情变得清晰起来。

于 2013-08-18T20:06:21.150 回答
0

Meteor 使用在线数据原理。因此它可以在浏览器中加载,并且需要连接到互联网来保持数据的“活跃性”。

因此,当您失去连接时,它内置的智能可以尝试重新连接。所以起初它会尝试重新连接是小的间隔。

你看到的是流星正在重试连接到服务器

  • status是它等待重试。connectedfalse
  • retryCount显示它尝试再次连接的次数
  • retryTime显示上一次或下一次尝试/将尝试连接(不确定是哪个)

此时没有任何错误,但流星会建立一个你所做的任何事情(更改集合等),然后一旦它连接它就会将这些提交到服务器。

Meteor.reconnect()如果您不想等待下一个重新连接间隔,您可以使用连接到服务器而不是刷新浏览器。这样您也不会丢失任何未提交到服务器的数据。

如果在您完全确定两者之间存在良好连接时发生这种情况,则需要查看服务器的控制台。很可能有什么东西使它崩溃/锁定了主线程。也许您正在执行阻塞密集型任务?(即来自大型集合,CPU 密集型任务?)

于 2013-08-14T14:51:01.320 回答