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 = '<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});
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,980评论 19 139
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 14,754评论 0 15
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,037评论 25 709
  • “不要绝望也不要骄傲,一心投身眼前的现实。”
    Grace杨阅读 1,589评论 0 0
  • 一、 普遍寻找法 这种方法也称逐户寻找法或者地毯式寻找法。其方法的要点是,在业务员特定的市场区域范围内,针对特...
    Msf阅读 10,800评论 0 3

友情链接更多精彩内容