Socket.io – 客户端断开后手动重新连接

我使用node.jssocket.io创build实时Web应用程序。 我将给用户完全控制套接字连接,如手动断开和(重新)连接。

 function socket_connect() { console.log('func socket_connect'); socket = io.connect('http://url/to/the/app'); } function socket_reconnect() { console.log('func socket_reconnect'); socket_connect(); } function socket_disconnect () { console.log('func socket_disconnect'); if (socket) socket.disconnect(); } 

在客户端启动socket_connect()函数工作正常,但使用socket.disconnect() ,没有新的连接启动。

如果您使用的是Socket.io 1.0,请尝试使用套接字上的iopipe理器来处理手动断开连接和重新连接。

 // Connect to socket.io var socket = io.connect('url'); function manual_disconnect() { socket.io.disconnect(); } function manual_reconnect() { socket.io.reconnect(); } 

重新连接尝试,重新连接,重新连接和连接事件的套接字应全部发射之后。

您可以通过以下客户端configuration重新连接。

  // for socket.io version 1.0 io.connect(SERVER_IP,{'forceNew':true }); 

它现在工作,与socket.socket.reconnect()

 function socket_connect() { console.log('func socket_connect'); socket = io.connect('http://url/to/the/app'); } function socket_reconnect() { console.log('func socket_reconnect'); socket.socket.reconnect(); } function socket_disconnect () { console.log('func socket_disconnect'); if (socket) socket.disconnect(); } 

相关: https : //github.com/LearnBoost/socket.io-client/issues/251