如何从服务器重新连接到客户端

时间:2013-05-16 22:48:50

标签: websocket meteor

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

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

但是如何重新连接断开连接的客户端呢?

2 个答案:

答案 0 :(得分: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();

应该正常工作。 ;)

祝你好运。

答案 1 :(得分:1)

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

从版本0.6.3开始,如果互联网断开连接。一旦互联网恢复,它将尝试重新连接。

要从代码重新连接,您可以从客户端运行Meteor.reconnect()

不幸的是,meteor客户端无法侦听来自服务器的连接,因此服务器无法启动重新连接,您需要与服务器建立某种连接,以便向客户端发送消息以执行重新连接等操作。