首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将socket.io ID与快件和护照连接起来

将socket.io ID与快件和护照连接起来
EN

Stack Overflow用户
提问于 2013-04-01 06:37:32
回答 1查看 652关注 0票数 2

我的简单尝试的目标是显示在线用户列表。我的意思是显示不是socket.io ID而是显示用户配置文件。当授权用户连接到我的服务器,打开socket.io通道时,需要获取他的配置文件并向其他连接用户发送消息,即新用户(姓名、电子邮件等)已被连接。我看到了许多例子,如何在授权范围内这样做,但它不能处理断开连接。我想做什么,我不能用伪码做什么:

代码语言:javascript
运行
复制
var io = require("socket.io").listen(server);
io.set("authorization", function(data, callback){
     // ... some code...
     callback(null, true);
});

io.sockets.on('connection', function (socket) {
    var UserProfile = passport.getUserProfile(socket.id) 
    io.sockets.emit('user_connected', {UserProfile: UserProfile, socketID: socket.id}); 

    io.sockets.on('disconnect', function (socket) {
         io.sockets.emit('user_disconnected', {socketID: socket.id});
    }); 

}); 

这是伪码!

我的堆栈溢出来了。我只想链接socket.io ID和护照帐户在连接内。我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2013-04-24 20:27:03

我也遇到了同样的问题,我的解决方案如下(希望有人有更好的想法):

  • 我将用户名添加到呈现调用(使用翡翠):res.render(‘聊天室’,{用户名: req.user.username});
  • 在连接到客户端上的套接字(io.connect)之后,我使用客户端上的connect事件(socket.on('connect',function (data) {.})向服务器发出一条以用户名为参数的消息;
  • 在服务器上,我将用户名存储在一个对象中(clientssocket.id = username)
  • 之后,我通过访问客户端对象获取每个套接字消息中的用户名。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15738795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档