Node.js重用tcp连接

我在node.js中是新的,所以这个问题可能是相当天真的。

我想使用node.js作为JavaScript客户端和Windows程序之间的代理,该程序具有通过定义的端口工作的API。 所以浏览器发送HTTP请求到node.js. Node.js打开与Windows程序的连接,发送请求,得到一个响应,并返回响应的JavaScript调用node.js(AJAX)

其实它已经实现了,工作。 问题是Windows程序想要持久工作。 所以一旦连接打开,它应该保持活着。

我的node.js脚本打开连接。 接下来调用node.js尝试再次打开连接。 这导致错误。

所以这个问题 – 在node.js中重用TCP连接的正确方法和中间点是什么? 所以下一个电话将不会打开新的连接,但继续打开一个。

这是可能的,但需要一些编码在你身边。

如果不粘(同一个HTTP客户端不需要使用相同的TCP连接):

  • 打开TCP连接的连接池到Windows程序
  • 收听HTTP请求
  • 如果一个HTTP请求到达,find一个未使用的TCP连接(如果没有可用的,build立一个新的或等待)
  • 查询windows程序,将结果返回给曾经调用HTTP请求的人
  • 将TCP连接标记为空闲

如果它很粘(总是对同一个HTTP客户端使用相同的TCP连接):

  • 如果一个HTTP客户端连接,他没有一个,给他的会议。
  • 如果不能用于会话:创build一个TCP连接
  • 发出请求,返回结果
  • 将TCP“连接”存储在下一个请求进入时可以到达的地方,并且您可以通过HTTP客户端会话识别它(也许是清理超时)