node.js搭建基础聊天室part4

第四部分,用户下线以及关闭服务器提醒

下线提醒功能:
1.服务端接受到'disconnect'事件,然后查找users对象里面是否还有下线用户名,有就删除,同时向其他连接的客户端广播下线消息
2.其他客户端触发"offline"事件,刷新用户列表

代码如下:

//服务端
//服务端接收到有用户下线
    socket.on('disconnect',function () {
        //如果users里有下线用户名
        if (users[socket.name]) {
            delete users[socket.name];
            //向其他用户广播该用户下线消息
            socket.broadcast.emit('offline',{users: users, user: socket.name});
        }
    })

//客户端
////其他用户下线
socket.on('offline', function (data) {
  //显示系统消息
  var sys = '
系统(' + now() + '):' + '用户 ' + data.user + ' 下线了!
'; $("#contents").append(sys + "
"); //刷新用户在线列表 flushUsers(data.users); //如果正对某人聊天,该人却下线了 if (data.user == to) { to = "all"; } //显示正在对谁说话 showSayTo(); });

关闭服务器提醒就比较简单了,只需要在客户端的disconnect和reconnect事件添加相应的逻辑渲染dom即可
代码如下:

//服务器关闭
socket.on('disconnect', function() {
    var sys = '
系统:连接服务器失败!
'; $("#contents").append(sys + "
"); $("#list").empty(); }); //重新启动服务器 socket.on('reconnect', function() { var sys = '
系统:重新连接服务器!
'; $("#contents").append(sys + "
"); socket.emit('online', {user: from}); });

你可能感兴趣的:(node.js搭建基础聊天室part4)