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

时间:2012-10-23 04:43:32

标签: javascript node.js websocket socket.io

我使用node.jssocket.io来创建实时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()后,没有新连接启动。

3 个答案:

答案 0 :(得分:17)

您可以按照客户端配置重新连接。

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

答案 1 :(得分:16)

现在可以使用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

答案 2 :(得分:16)

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

// Connect to socket.io 
var socket = io.connect('url');

function manual_disconnect() {
   socket.io.disconnect();
}

function manual_reconnect() {
   socket.io.reconnect();
}

套接字上的reconnecting_attempt,重新连接,重新连接和连接的事件都应该在之后发出。