これは簡単な質問だと確信していますが、socket.ioのドキュメントがどこにあるのか、そして http://labs.learnboost.com/socket.io/ don 'にあるのかわかりません。 tは本当に役立ちます。
それで、私がsocket.io httpサーバーを持っていて、それに接続するためのWebサイトを書いたとしましょう。
許可されていない人(Webサイトを介さずに接続した人)がブロック/ドロップ/禁止されるように、サーバーを保護するにはどうすればよいですか。
サーバー側でソケット接続を終了するにはどうすればよいですか?だから私が持っているなら
io.sockets.on('connection', function (socket) {
socket.on('end', function() {
var i = global_sockets_list.indexOf(socket);
global_sockets_list.splice(i, 1);
});
socket.emit('end'); // Doesn't work, just sends data
socket.end(); //error
});
ソケット接続を終了するにはどうすればよいですか? (上記の接続と切断はテスト用です)
電話してみてください:
socket.disconnect('unauthorized');
または
socket.close();
編集:リファラーヘッダーを確認できる場合があります。詳細については、 Socket.ioセキュリティの問題 を参照してください。
サーバー側には、基になるトランスポート接続を閉じることを意味するブール値をとる socket.disconnect メソッドがあります。 2010年7月現在のドキュメントのソースコードは次のとおりです。
_/**
* Disconnects this client.
*
* @param {Boolean} if `true`, closes the underlying connection
* @return {Socket} self
* @api public
*/
Socket.prototype.disconnect = function(close){
if (!this.connected) return this;
if (close) {
this.client.disconnect();
} else {
this.packet({ type: parser.DISCONNECT });
this.onclose('server namespace disconnect');
}
return this;
};
_
したがって、socket.disconnect(true);
を呼び出す必要があります