2

我能够通过以下代码检测客户端何时与服务器断开连接:

self._session.socket.on("close", function() {
    console.log("client disconnected");    
}

但是如何尝试重新连接到断开连接的客户端?

4

2 回答 2

1

您无法从服务器连接到客户端,因为客户端没有监听 websocket,而只是连接(连接到服务器)。

但是,您可以在您的客户端中放置一个代码,以便在onclose(或仅close)事件时重新连接它。通常,这是通过使用正确的参数在客户端中重新创建 WebSocket 对象来实现的。

比如:

function connect(){
    var mywebsocket = new WebSocket("ws://(your url)");
    // ... my callbacks and functions...
    mywebsocket.onclose = connect; // or arguments.callee
}
connect();

应该可以正常工作。;)

祝你好运。

于 2013-05-16T22:55:15.830 回答
1

如果客户端由于某种原因断开连接(互联网连接中断/服务器问题),它将自动重新连接。要查看已进行了多少次尝试或状态,请查看http://docs.meteor.com/#meteor_status

从 0.6.3 版开始,如果互联网断开连接。互联网恢复后,它也会尝试重新连接。

要从您的代码重新连接到某个地方,您可以Meteor.reconnect()从客户端运行。

不幸的是,流星客户端无法侦听来自服务器的连接,因此服务器无法启动重新连接,您需要某种与服务器的连接才能向客户端发送消息以执行诸如重新连接之类的操作。

于 2013-05-17T07:16:11.137 回答