Ответ 1
Попробуйте позвонить:
socket.disconnect('unauthorized');
или
socket.close();
EDIT: возможно, вы сможете проверить заголовок реферирования. Подробнее см. Проблемы безопасности Socket.io.
Я уверен, что это простой вопрос, но я понятия не имею, где находятся документы socket.io, а у http://labs.learnboost.com/socket.io/ нет действительно помогите.
Итак, позвольте сказать, что у меня есть http-сайт socket.io http и написано веб-сайт для подключения к нему.
Как обеспечить защиту сервера, чтобы неавторизованные пользователи (люди, которые не подключались через сайт) были заблокированы/сброшены/заблокированы.
Как завершить соединение сокета на стороне сервера? Так что если у меня
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();
EDIT: возможно, вы сможете проверить заголовок реферирования. Подробнее см. Проблемы безопасности Socket.io.
На стороне сервера существует метод socket.disconnect, который берет логическое значение для закрытия основного транспортного соединения. Здесь исходный код с документами по состоянию на июль 2010 года:
/**
* 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);