【发布时间】:2020-08-17 05:48:47
【问题描述】:
当用户与服务器断开连接时,我正在尝试显示一条消息。它目前的工作原理是它将向所有连接的用户显示消息。但是,如果我尝试使用 user 变量来显示哪个用户已断开连接,它会向自己显示已连接客户端的名称,而不是离开的实际用户。我已经尝试了几件事,但无法让它发挥作用,这就是我想出的。 在浏览器中,当有人断开连接时,将显示以下代码“undefined has left the chat”。
如何更正此问题以显示实际用户名?
在 script.js 中:
var user = user;
if (!user) {
user = prompt('Please choose a username:');
if (!user) {
alert('Your name has been set to "Anonymous"');
} else {
alert('Your name has been set to "'+ user +'"');
}
}
socket.emit('user disconnected', {
user: user
});
socket.on('user disconnected', (data) => {
$('.chat').append(data.user + " has left the chat");
});
在 server.js 中:
server(socket('disconnect', ctx => { console.log(ctx.data); ctx.io.emit('user disconnected', ctx.data); }));
此外,一旦用户断开连接,“传输关闭”就会发布到控制台,我不确定这意味着什么。
【问题讨论】:
标签: javascript node.js express server socket.io