首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在实时聊天中管理多个客户端之间的消息传递的最佳方式是什么?

在实时聊天中管理多个客户端之间的消息传递的最佳方式是什么?
EN

Stack Overflow用户
提问于 2015-05-14 11:02:07
回答 2查看 764关注 0票数 1

我正在开发一个实时聊天应用程序。我已经建立了一个基本的聊天应用程序。但是,我怀疑我这样做的方式是否正确?

为此,我使用了NODE JS + SOCKET IO。我所做的是,当任何客户端向任何其他客户端发送任何消息时..该消息将发送到socket服务器& socket服务器只需将该消息广播给所有其他连接的客户端,并提供一些额外的细节,比如该消息针对的是谁。因此,在客户端(浏览器),当发生任何正确的匹配时,它会显示消息&它正在工作。

但我在这里的疑问是,这是一个正确的方法吗?因为,我向所有连接的客户端广播消息,而不是将消息发送给特定的客户端。看起来不像是个安全风险?

然后,如果我使用接收者的套接字id并仅将该消息发送给他/她,而不是将该消息广播给所有客户端。当一个客户端通过不同的不同设备连接到服务时,我应该如何管理这种情况。手提电脑,手机,还是帐单?因此,当他/她收到任何消息时,该消息应该在所有连接的设备中都可见?

需要一些关于最好的方法的建议。

致谢和问候

EN

回答 2

Stack Overflow用户

发布于 2015-05-14 11:20:08

你应该存储用户会话(id,socket)

服务器端:

代码语言:javascript
复制
 var clientSessions = []

// On connection
sockets.on('connection', function(socket) {
  var user = new Object();
  user.id = socket.handshake.query.userId;
  user.socket = socket;
  clientSessions.push(user);
});

客户端:

代码语言:javascript
复制
 socketio.connect('http://localhost:3000', {query: 'userId=ABCXYZ'});
票数 0
EN

Stack Overflow用户

发布于 2015-05-14 11:05:01

您可以将所有连接存储在数组中或服务器中,然后确定需要将消息发送到哪个客户端,当您需要将消息发送到单个客户端时。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30228548

复制
相关文章

相似问题

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