16

我使用node.jsandsocket.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(),没有新的连接开始。

4

3 回答 3

16

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

 // for socket.io version 1.0
io.connect(SERVER_IP,{'forceNew':true });
于 2014-11-25T08:03:59.347 回答
15

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

于 2012-10-23T21:55:44.153 回答
15

如果您使用的是 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、reconnecting、reconnected 和 connected 事件都应该在之后发出。

于 2014-07-11T14:35:48.827 回答