我是Websockets的新手。在阅读websockets时,我无法找到一些疑问的答案。我想如果有人澄清它。
websocket是否仅将数据广播到所有连接的客户端而不是发送到特定客户端?无论我尝试过哪种示例(主要是聊天应用程序),它们都会向所有客户端发送数据有可能改变这个吗?
它如何在位于NAT(路由器后面)的客户端上运行。
由于客户端服务器连接将始终保持打开状态,因此如何影响大量连接的服务器性能?
由于我希望所有客户都能获得实时更新,因此需要将我的所有客户端连接到服务器,那么我应该如何处理客户端连接限制呢?
注意: - 我的客户端不是Web浏览器,而是桌面应用程序。
答案 0 :(得分:3)
不,websocket不仅适用于广播。您向特定客户端发送消息,当您广播时,您只需向所有连接的客户端发送相同的消息,但您可以向不同的客户端发送不同的消息,例如游戏会话。
客户端连接到服务器并初始化连接,因此NAT不是问题。
使用可扩展服务器是很好的,例如一个事件驱动的服务器(例如Node.js),它不为每个连接使用单独的线程,或者是一个带有轻量级进程的erlang服务器(游戏服务器的一个很好的选择)。
如果您使用良好的服务器操作系统(例如Linux),这应该不是问题,但如果您的服务器使用桌面版Windows(例如,可能限制为200个连接),则可能是一个限制。