我正在开发一个实时聊天应用程序。我已经建立了一个基本的聊天应用程序。但是,我怀疑我这样做的方式是否正确?
为此,我使用了NODE JS + SOCKET IO。我所做的是,当任何客户端向任何其他客户端发送任何消息时..该消息将发送到socket服务器& socket服务器只需将该消息广播给所有其他连接的客户端,并提供一些额外的细节,比如该消息针对的是谁。因此,在客户端(浏览器),当发生任何正确的匹配时,它会显示消息&它正在工作。
但我在这里的疑问是,这是一个正确的方法吗?因为,我向所有连接的客户端广播消息,而不是将消息发送给特定的客户端。看起来不像是个安全风险?
然后,如果我使用接收者的套接字id并仅将该消息发送给他/她,而不是将该消息广播给所有客户端。当一个客户端通过不同的不同设备连接到服务时,我应该如何管理这种情况。手提电脑,手机,还是帐单?因此,当他/她收到任何消息时,该消息应该在所有连接的设备中都可见?
需要一些关于最好的方法的建议。
致谢和问候
发布于 2015-05-14 11:20:08
你应该存储用户会话(id,socket)
服务器端:
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);
});客户端:
socketio.connect('http://localhost:3000', {query: 'userId=ABCXYZ'});发布于 2015-05-14 11:05:01
您可以将所有连接存储在数组中或服务器中,然后确定需要将消息发送到哪个客户端,当您需要将消息发送到单个客户端时。
https://stackoverflow.com/questions/30228548
复制相似问题