_node.js
_および_socket.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()
を使用すると、新しい接続は開始されません。
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
クライアント側の設定に従って再接続できます。
// for socket.io version 1.0
io.connect(SERVER_IP,{'forceNew':true });
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イベントはすべて、後で発行される必要があります。