在socket.io上closures套接字服务器端?

我很确定这是一个简单的问题,但是我不知道socket.io文档在哪里, http: //labs.learnboost.com/socket.io/上的文档也没有帮助。

所以,假设我有一个socket.io http服务器,并写了一个网站连接到它。

  1. 如何为服务器提供保护,以防止未经授权的人员(不通过网站连接的人员)被阻止/丢弃/禁止。

  2. 如何结束服务器端的套接字连接? 所以,如果我有

    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 }); 

如何结束套接字连接? (连接然后断开以上是为了testing)

尝试拨打:

 socket.disconnect('unauthorized'); 

要么

 socket.close(); 

编辑:您可能能够检查参考头。 查看Socket.io安全问题了解更多信息。

在服务器端有一个socket.disconnect方法,其布尔意义closures底层的传输连接。 以下是截至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);