pipe理node.js中基于命令的TCP套接字API的连接
我构build了一个基于expresss.js的RESTful API,通过使用JSON的TCP套接字与远程服务器进行通信。 请求的URL被转换成适当的JSON消息,新的TCP套接字打开并且发送消息。 然后,当接收到来自同一连接的消息时,事件被触发,JSON回复将被计算,并且由于GET请求返回新的JSON消息。
可能的path:
- asynchronous(当前正在使用) – 为每个请求打开到服务器的连接。
- 同步 – 创build一个包含所有请求的队列,并等待响应,阻止代码。
- 跟踪 – 一次发送所有请求,并asynchronous收到答案。 在请求上使用跟踪者ID来将每个请求与其答案关联起来。
什么是最好的方向去? 有没有什么共同的模式来解决这种应用?
1(asynchronous,每个请求的新连接)可能是最容易实现的。
如果你想有效地重用套接字,你应该想出自己的“keep-alive”机制 – 基本上使用相同套接字来传输多个请求和答案。
我可能会使用双CRLF('\ n \ r \ n \ r')作为每个JSON请求的分隔符,为每个请求启动一个'request'事件,并简单地回写asynchronous的答案。 无分隔符stream式传输是可能的,但是当您从套接字接收到部分JSONstring时,需要额外parsing。