栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用Node.js + Redis处理用户和套接字对

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用Node.js + Redis处理用户和套接字对

一个更优雅的解决方案是使每个套接字都连接到通道userID,例如:

io.sockets.on('connection', function (socket) {  socket.join(userID);});// when you want somebody to send a message to userID you can do:io.sockets.in(userID).emit(message);

这里需要注意两点:

  1. 确保只有userID可以连接到他的频道,从而验证会话(在此处了解更多信息:http : //www.danielbaulig.de/socket-ioexpress/)
  2. 在连接时,增加redis中的userID值(以便您知道该用户正在监听的新连接),而在断开连接时,减小userID值(以便您知道仍在监听的连接数)。如果值为0,则您会向聊天室发送一条消息,指出已离开userID(因为侦听userID通道的连接数为0)。

当其他用户想要向userID发送消息时,他们不需要连接到userID通道,则可以向该

chat
通道发送消息并将userID作为属性传递。例如:

var chat = io  .of('/chat')  .on('connection', function (socket) {    // connected to public chat  })  .on('message', function (data) {    if (data.userID && data.message) {      io.sockets.in(userID).emit('UserX: ' + data.message);    }  });


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/391981.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号