[英]socket.io Disconnect certain client
我正在使用socket.io聊天項目示例。 我想為聊天應用程序添加密碼保護。 這只是簡單的身份驗證。 如果用戶輸入了錯誤的密碼,則服務器將斷開該用戶的連接。
客戶端代碼:
var socket = io();
socket.emit('user name', username);
socket.emit('password', password);
服務器端代碼:
socket.on('password', function (msg) {
if (msg !== '123321') {
io.emit('system info', 'Wrong password... Disconnecting ' + username+'...');
io.close(true);
return false;
}
});
close()方法不起作用。 斷開連接的用戶仍然能夠接收來自其他用戶的消息。 那么如何正確地做到這一點呢? 謝謝。
假設您正在使用以下方式創建ID(服務器端):
io.engine.generateId = (req) => {
return custom_id++; // custom id must be unique
}
您可以使用.disconnect()
關閉特定的連接,並可以使用socket.id
調用ID
socket.on('password', function (msg) {
if (msg !== '123321') {
io.emit('system info', 'Wrong password... Disconnecting ' + username+'...');
io.sockets.connected[socket.id].disconnect();//<-- in this case it's just a number
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.