使用相同的WebSocket将消息推送到客户端

时间:2012-10-23 20:23:28

标签: concurrency websocket

我从WebSockets开始,我已经建立了一个聊天网络应用程序作为练习,它是这样的: 每个用户在到达聊天室时都有一个打开的websocket连接,当有新消息可用时,他们只需要推送给每个用户。然后使用javaScript显示不同的消息。

现在,我正试图通过创建一对一聊天来进一步推动练习。基本上,将不再有一个独特的聊天室,而是私人聊天对话。用户应该能够从同一页面与不同的人交谈。 (像谷歌聊天或Facebook聊天)。 在考虑了这样做的方法之后,我找到了两个解决方案:

  • 打开多个websocket连接。 (如果可能的话)
  • 使用相同的连接来处理所有已打开的会话。基本上,推送到客户端的每条消息都会带有一个字段,说明它属于哪个对话,然后javaScript将处理正确对话下每条消息的显示。

对我而言,第二种解决方案似乎比第一种更好。所以,我的问题是:

1- Will this solution have any performance problems? (Lost messages...)
2- Is there any other-better way of doing this?

1 个答案:

答案 0 :(得分:1)

前进的方式取决于(恕我直言)你正在使用什么框架来进行这种沟通。 我(就像你一样)会选择多路复用(第二个选项),你可以使用一个连接来处理所有通信。

我认为您选择的框架支持发布/订阅和多路复用?

如果你愿意,我可以为你提供一个简单的例子。

此致 Uffe,Team XSockets