QA@IT

socket.ioの接続を切りたい

11768 PV

socket.ioの接続をクライアント側から切断するにはどうすればいいですか。
また1クライアントから複数のコネクションが確立されているのを確認するにはどうすればいいですか。

回答

例えば以下の様に接続しているなら

var socket = io();

次のように切断することができます。

if(!socket.disconnected)
    socket.disconnect();

サーバー側で同一ユーザーが接続して来たかどうか、最適解はわかりませんがセッションが管理可能なWebサーバーで動作させている場合、

io.on('connection', function(socket){
    console.log(socket.handshake.headers.cookie);
}

などとhandshake経由でcookieは取得できるので、 Session IDを元に管理するという方法を取ることが多いようです。

ちなみに cookieモジュールがあれば

require('cookie').parse(socket.handshake.headers.cookie)

として、cookieを扱いやすいディクショナリ形式にできます。(昔は connect モジュールにいたみたいです。)

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。