【问题标题】:Does websocket only broadcasts the data to all clients connected instead of sending to a particular client?websocket 是否只将数据广播给所有连接的客户端,而不是发送给特定的客户端?
【发布时间】:2012-12-07 16:06:08
【问题描述】:

我是 Websockets 的新手。在阅读有关 websockets 的信息时,我无法找到一些疑问的答案。如果有人澄清一下,我想知道。

  1. websocket 是否只将数据广播给所有连接的客户端,而不是发送给特定的客户端?无论我尝试什么示例(主要是聊天应用程序),它们都会向所有客户端发送数据。可以改吗?

  2. 它如何在位于 NAT(路由器后面)的客户端上工作。

  3. 由于客户端服务器连接将始终保持打开状态,对于大量连接,它将如何影响服务器性能?

  4. 由于我希望我的所有客户端都获得实时更新,所以我需要将所有客户端连接到服务器,那么我应该如何处理客户端连接限制?

注意:- 我的客户端不是 Web 浏览器,而是桌面应用程序。

【问题讨论】:

  • 你能告诉我更多关于 websockets 的信息我可以在哪里学习吗?我知道这是一个托管在服务器上的系统,它可以让您在没有 http 请求的情况下连接到客户端。但我不知道这个广播的事情。你在哪里学的。

标签: websocket push-notification server-push phpwebsocket


【解决方案1】:
  1. 不,websocket 不仅仅用于广播。您向特定客户端发送消息,当您广播时,您只需向所有连接的客户端发送相同的消息,但您可以向不同的客户端发送不同的消息,例如游戏会话。

  2. 客户端连接到服务器并初始化连接,所以 NAT 不是问题。

  3. 最好使用可扩展的服务器,例如不为每个连接使用单独线程的事件驱动服务器(例如 Node.js),或具有轻量级进程的 erlang 服务器(游戏服务器的不错选择)。

  4. 如果您使用良好的服务器操作系统(例如 Linux),这应该不是问题,但如果您的服务器使用 Windows 的桌面版本(例如可能限制为 200 个连接),则可能会受到限制。

【讨论】:

  • 服务器端的node.js、phpwebsocket和java websocket之间有什么建议。
  • @ganesh 这三个都是有效的选项。使用您更熟悉的任何一种,以及最适合您应用程序的其余部分的任何一种。
  • @ganesh 我已经将realtime web tech guide 放在一起,在查看您选择的技术时可能对您有用。
猜你喜欢
  • 2017-09-08
  • 1970-01-01
  • 2016-10-19
  • 2017-05-26
  • 2015-01-18
  • 2020-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多