3

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

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

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

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

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

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

4

1 回答 1

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

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

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

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

于 2012-12-20T07:47:48.793 回答