我很确定这是一个简单的问题,但是我不知道socket.io文档在哪里,http://labs.learnboost.com/socket.io/上的那个文档也没有真正的帮助。
假设我有一个socket.io http服务器,并编写了一个网站来连接它。
我如何为服务器提供保护,使未经授权的人(不是通过网站连接的人)将被blocked/dropped/banned.
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');//不工作,只发送数据socket.end();//
如何结束套接字连接?(上面的连接然后断开连接是为了测试)
发布于 2011-09-21 07:29:52
尝试呼叫:
socket.disconnect('unauthorized');
或
socket.close();
编辑:您可以查看referer标题。查看Socket.io Security Issues了解更多信息。
发布于 2015-07-11 04:06:05
在服务器端,有一个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);
https://stackoverflow.com/questions/7492966
复制相似问题