javascript - 使用Socket.io时如何获取断开连接的客户端信息
PHP中文网
PHP中文网 2017-04-11 09:53:43
[JavaScript讨论组]

我使用node创建了一个服务器,与客户端通过Socket.io进行连接,构造了一个在线聊天室,当某个用户连接进来的时候向服务器发送一条消息,告知服务器某用户进入了聊天室,但是我要如何在某个客户端断开连接时,让服务器准确地知道是谁断开了连接?

客户端

    var socket = io.connect();
    socket.emit('new user','用户名');

服务端监听部分

  io.on('connection',function(socket) {

    socket.on('new user',function(name){
      console.log(name + '进入了聊天室');
    })

    socket.on('chat Msg',function(data){
      io.emit('chat Msg',data);
    });

    socket.on('disconnect',function(){
      console.log('???离开了聊天室');
      //这里如何获得准确地用户名?目前只能知道某个用户断开了连接
    })
    
  })
PHP中文网
PHP中文网

认证0级讲师

全部回复(1)
大家讲道理

socket.io一样可以加cookie或者session信息的。

以socket.io和express为例

// 设置socket的session验证
io.use(function (socket, next) {
  if (socket.request.headers.cookie) {
    socket.request.cookies = cookie.parse(socket.request.headers.cookie);
    next();
  } else {
    return next(new Error('Missing cookie headers'));
  }
});

// 建立链接
io.on('connection', function (socket) {

  // 记录socket
  if (socket.request.cookies) {
    var sid = socket.request.cookies._sid;
    console.log(sid);
  }
});
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号