在node.js中管理基于命令的TCP套接字API上的连接

在node.js中管理基于命令的TCP套接字API上的连接,api,node.js,sockets,asynchronous,tcp,Api,Node.js,Sockets,Asynchronous,Tcp,我基于expresss.js构建了一个RESTful API,它使用JSON通过TCP套接字与远程服务器通信。请求的URL将转换为相应的JSON消息,打开新的TCP套接字并发送消息。然后,当收到来自同一连接的消息时,将触发一个事件,计算JSON回复,并作为GET请求的结果返回一条新的JSON消息 可能的路径: 异步(当前正在使用)-为每个服务器打开到服务器的连接 请求 同步-创建一个包含所有请求的队列并等待 响应,阻塞代码 跟踪-一次发送所有请求并异步接收答案。在请求上使用跟踪器id将每个请求与

我基于expresss.js构建了一个RESTful API,它使用JSON通过TCP套接字与远程服务器通信。请求的URL将转换为相应的JSON消息,打开新的TCP套接字并发送消息。然后,当收到来自同一连接的消息时,将触发一个事件,计算JSON回复,并作为GET请求的结果返回一条新的JSON消息

可能的路径:

  • 异步(当前正在使用)-为每个服务器打开到服务器的连接 请求
  • 同步-创建一个包含所有请求的队列并等待 响应,阻塞代码
  • 跟踪-一次发送所有请求并异步接收答案。在请求上使用跟踪器id将每个请求与其答案关联起来
  • 最好的方向是什么?有没有解决此类应用程序的通用模式?

    1(异步,每个请求的新连接)可能是最容易实现的。 如果您想高效地重用套接字,您应该提出自己的“保持活动”机制——本质上是使用同一套接字流式处理多个请求和响应

    我可能会使用双CRLF('\n\r\n\r')作为每个JSON请求的分隔符,为每个请求触发一个'request'事件,然后简单地异步写回答案。可以使用无分隔符的流,但当您从套接字接收部分JSON字符串时,需要额外的解析