node.js - 客户端是否可以向 websocket 服务器指定其类型?

标签 node.js websocket

我是 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/

相关文章:

node.js - Nodejs 和 Expressjs 避免嵌套回调查询

javascript - 如何在 Node.js 中强制重置套接字?

node.js - 在 Mongoose 中传递 REST URL 参数作为查询条件

ssl - wss 连接中忽略的自签名证书 SAN

javascript - 在谷歌浏览器扩展中打开 Socket.IO 连接

node.js - mongoose findByIdAndUpdate 在 graphql 中未修改的模型数据上返回 null

node.js - 在create-react-app中使用Socket.io-client的WebSockets代理

javascript - 如何在 WebSockets Java 中发起服务器端消息?

javascript - 通过 Websocket() 连接到 socket.io 服务器时不起作用

javascript - 使用 npm 离线引导 Web 应用程序