16

と を使用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()、新しい接続は開始されません。

4

3 に答える 3

16

クライアント側の設定に従って再接続できます。

 // for socket.io version 1.0
io.connect(SERVER_IP,{'forceNew':true });
于 2014-11-25T08:03:59.347 に答える
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 に答える
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 に答える