websocket是否只将数据广播到所有连接的客户端,而不是发送到特定的客户端?

websocket是否只将数据广播到所有连接的客户端,而不是发送到特定的客户端?,websocket,push-notification,server-push,phpwebsocket,Websocket,Push Notification,Server Push,Phpwebsocket,我不熟悉WebSocket。在阅读有关WebSocket的文章时,我无法找到一些疑问的答案。我希望有人能澄清一下 websocket是否只将数据广播到所有连接的客户端,而不是发送到特定的客户端?无论我尝试了什么示例(主要是聊天应用),它们都会将数据发送到所有客户端。有可能改变这个吗 它如何在位于NAT(路由器后面)的客户端上工作 由于客户机-服务器连接将始终保持打开状态,对于大量连接,它将如何影响服务器性能 由于我希望我的所有客户端都能获得实时更新,所以需要将我的所有客户端连接到服务器,所以我应

我不熟悉WebSocket。在阅读有关WebSocket的文章时,我无法找到一些疑问的答案。我希望有人能澄清一下

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

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

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

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

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

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

  • 客户端连接到服务器并初始化连接,因此NAT不是问题

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

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


  • 对于node.js、phpwebsocket和java websocket for server,您有什么建议。@ganesh这三个选项都是有效的。使用您更熟悉的内容,以及对应用程序的其余部分最适合的内容。@ganesh我已经整理了一份报告,在您选择技术时可能会对您有所帮助。您能告诉我更多关于WebSocket的信息吗?我在哪里可以学习?我知道这是一个在服务器上托管的系统,它允许您无需http请求即可连接到客户端。但我不知道广播的事。你在哪里学的。