4

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

可能的路径:

  1. 异步(当前正在使用)- 为每个请求打开与服务器的连接。
  2. 同步 - 创建一个包含所有请求的队列并等待响应,阻塞代码。
  3. 跟踪 - 一次发送所有请求并异步接收答案。在请求上使用跟踪器 ID 将每个请求与其答案相关联。

最好的方向是什么?有没有解决这种应用程序的通用模式?

4

1 回答 1

1

1(异步,每个请求的新连接)可能是最容易实现的。

如果您想有效地重用套接字,您应该提出自己的“保持活动”机制 - 本质上是使用同一个套接字流式传输多个请求和答案。

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

于 2012-12-10T04:53:45.827 回答