我有一个基本上使用cookies
进行会话处理的应用程序。
目的是在用户connects
和disconnects
,
io.on('connection', function(socket){
// Logging when a new connection is, made!
socket.emit('cookie_user_log');
socket.on('cookie_value_log', function(x){
console.log(x+ " Joined the conversation! :)");
io.emit('welcome', x); // will display welcome HTML client-side message
});
这非常有效,我可以在用户connects
时查看消息。
但是,类似的方法似乎无法处理断开连接。
socket.on('disconnect', function(){
leave();
});
function leave()
{
console.log("LEAVE IT");
socket.emit('cookie_user_leave');
socket.on('cookie_value_leave', function(x){
console.log(x+ " Left the conversation! :)");
io.emit('bye', x); // will display bye HTML client-side message
});
}
此处的输出仅为:
LEAVE IT
并且不显示消息! 任何帮助表示赞赏!
答案 0 :(得分:2)
如果您想要做的只是在另一个客户端断开连接时输出到其他连接的客户端,那么您可以执行以下操作:
io.on('connection', function(socket){
// Logging when a new connection is, made!
var user
socket.emit('cookie_user_log');
socket.on('cookie_value_log', function(x){
user = x
console.log(x+ " Joined the conversation! :)");
io.emit('welcome', x); // will display welcome HTML client-side message
});
socket.on('disconnect', function(){
if (!user) return;
console.log(user+ " Left the conversation! :)");
io.emit('bye', user);
});
})