在循环中没有人,两个端点都是独立的Node.js应用程序,作为独立的服务运行。
端点A负责通过安全web套接字联系端点B,并24/7/365保持该连接。
两个端点都将独立地启动消息(无需人工干预),并且两个端点都将具有API (RESTful或其他)来接收和处理消息。您可能会说,每个端点都是另一个端点的客户机和服务器。
我正在考虑像Sails.js和LoopBack这样的框架(在两个端点上都实现),以及简单地通过ws传递JSON消息,但仍不清楚最惯用的方法是什么。
Web Sockets在连接浏览器等方面有很多开销,因为它们试图与HTTP保持兼容。如果您只是连接一对服务器,一个简单的TCP连接就足够了。您可以使用net模块。
现在,一旦你有了这种联系,你如何开始沟通?你可以麻烦地制定自己的协议,但我不建议你这么做。我发现一个简单的RPC是最简单的。你可以在任何双工流(包括你的TCP套接字)上使用rpc-stream包。
对于我自己的应用程序,我实际上安装了socket。io-client,让我的服务器将其用于RPC。虽然如果我要再做一次,我会使用rpc-stream来跳过设置Web Socket连接所需的所有开销。