我是 Node.js 新手,正在构建一个简单的 websocket 服务器来在我的 Android 手机和计算机之间进行简单的通信。我的设计规范是我的 Android 应该不断地向我的计算机发送数据,而计算机应该偶尔发回一些数据。假设我想扩大规模,拥有两台计算机和两个机器人(每个机器人在我心目中的基础设施中都有指定的角色)。
所以有 Computer1、Computer2、Android1、Android2。它们都连接到我的 websocket 服务器
假设我是 Android1,我只想在某个时间点与 Computer1 通信,然后我想与 Computer2 通信,然后再与 Android2 通信。我(作为 Android1)如何告诉服务器在给定时刻我想与谁通信,以及在服务器端引导流量的代码/逻辑是什么样的?
最佳答案
此功能需要在应用程序级别添加。 Websockets 只是用于在客户端和服务器之间发送数据的低级协议(protocol)。任何额外的逻辑都需要添加到您的应用程序中,具体取决于您的架构。 您需要使用附加信息(如客户端类型、客户端 ID、IP 地址等)来丰富客户端/服务器之间发送的包,以允许一定程度的可扩展性。 为了让您的应用能够扩展,需要考虑一些其他事项:
- 添加持久层:将网络状态保存在数据库中,哪些 Node 在线,哪个客户端可以连接到哪个服务器等
- 为您的服务器创建主从架构:使用单个主服务器作为主服务器,向客户端发送回有关它们应连接到哪个工作线程的信息(假设 Computer1、Computer2 是您的工作线程)
关于node.js - 客户端是否可以向 websocket 服务器指定其类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53018087/