提醒一下,这个项目是基于Glitch的以下入门项目构建的,或者是从GitHub克隆的。许多聊天室能够在用户连接或断开连接时进行通知,然后将其显示给聊天中的所有连接用户。看起来您已经在连接和断开连接上发出事件,您只需修改此事件即可支持此功能。最合乎逻辑的方法是使用事件发送3个数据:连接/断开用户的名称,当前用户计数以及连接或断开连接的名称。
将事件名称更改为“user”,并且数据传递一个对象,包含字段'name','currentUsers'和boolean'connected'(如果是连接则为true,对于断开发送的用户,则为false)。确保对我们有'用户计数'事件的两个点进行更改,并将断开连接设置为对'field'字段发送false,而不是像在connect上发出的事件那样为true。 io.emit('user', {name: socket.request.user.name, currentUsers, connected: true});
现在,您的客户端将拥有所有必要信息,以便在用户连接或断开连接时正确显示当前用户数和通知!要在客户端处理此事件,我们应该监听“用户”,然后使用jQuery将#num-users
的文本更改为“{NUMBER}在线用户”,并附加<li>
,以更新当前用户数<li>
使用ID为'messages'的无序列表,其中'{NAME}已{加/左}聊天。'。此实现可能如下所示: socket.on('user',function(data){
$('#num-users')。text(data.currentUsers +'users online');
var message = data.name;
if(data.connected){
消息+ ='已加入聊天。';
} else {
消息+ ='离开了聊天。';
}
$('#messages')。append($('<li>')。html('<b>'+ message +'<\ / b>'));
});
当您认为自己已经做对时,请提交您的页面。
## Instructions