Socket.io отключить клиента по id
Я новичок в nodejs и пытаюсь написать чат, как и многие люди. Чат состоит из нескольких комнат и клиентов. Такие команды как/nick
/join
/help
/ls users
/ls rooms
работать, как и следовало ожидать, хотя у меня проблемы с получением/kick
Команда на работу.
Я просто не уверен, как вы отключаете клиента по идентификатору, пока/kick client
в состоянии представить соответствующие клиенты socket.id, хотя я застрял для кода, чтобы пнуть через socket.id.
Код до сих пор:
Отключить клиент, который отправил/kick
: socket.disconnect();
удалять клиент из Аргентины/kick client
: delete io.sockets.sockets[client];
Удаление клиента не отключает их, хотя они могут получать данные, но не отправлять их.
решаемая0,9 CuriousGuy работал безупречно, для тех, кто заинтересован - вот код, который я использую.
Сторона сервера:
handleClientKick(socket);
...
function handleClientKick(socket) {
socket.on('kick', function(client) {
if (typeof io.sockets.sockets[client] != 'undefined') {
socket.emit('message', {text: nickNames[socket.id] + ' kicked: ' + nickNames[client]});
io.sockets.sockets[client].disconnect();
} else {
socket.emit('message', {text: 'User: ' + name + ' does not exist.'});
}
});
}
Сторона клиента:
kickClient = function(client) {
this.socket.emit('kick', client);
};