我一直在努力研究如何在不同机器上的两个节点进程之间进行最佳通信。
我在多个客户端和一台服务器之间建立了TCP连接。这些客户端将保持套接字打开,因为它们将永久发送数据,我希望避免在打开/关闭套接字时浪费时间。
我开始使用JSON-Socket,但表演非常糟糕,所以我开始修改它以通过不同方式改善它的表现:
process.nextTick(.. socket.emit('item', item) ..)
触发此数组中每个项目的事件,以避免调用堆栈错误。但我的感觉是它非常低效。所以我在考虑使用protobuf对字符串进行字符串化/解析(Node prtofobuf perf),保持我的TCP管道打开以避免重新连接,并且仍然在每个项目通过管道发送之前使用intLE表示法来解析它并在其上发出它另一端。但我真的不确定最好的方法,或者有更好的事件?
总结我想要实现的目标:
X客户将 ~110个字符的项目发送到 1个服务器。服务器需要单独处理每个项目并确认将每个项目都考虑在内。