美文网首页
node.js搭建基础聊天室part4

node.js搭建基础聊天室part4

作者: 龍太 | 来源:发表于2017-03-08 15:58 被阅读0次

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

    下线提醒功能:
    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 = '<div style="color:#f00">系统(' + now() + '):' + '用户 ' + data.user + ' 下线了!</div>';
      $("#contents").append(sys + "<br/>");
      //刷新用户在线列表
      flushUsers(data.users);
     //如果正对某人聊天,该人却下线了
      if (data.user == to) {
          to = "all";
      }
      //显示正在对谁说话
       showSayTo();
    });
    

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

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

    相关文章

      网友评论

          本文标题:node.js搭建基础聊天室part4

          本文链接:https://www.haomeiwen.com/subject/bebbgttx.html