2013-12-15 46 views
1

我是新的node.js 所以这个问题可能很幼稚。Node.js重用tcp连接

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

实际上已经实现了这么和工作的JavaScript(AJAX)的响应。 问题是,Windows程序想持久工作。 所以一旦连接打开,它应该保持活着。

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

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

回答

1

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

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

  • 打开TCP连接到Windows程序
  • 的连接池听HTTP请求
  • 如果一个HTTP请求到达时发现未使用的TCP连接(如果没有可用的,使一个新的或等待)
  • 查询的Windows程序,结果返回给谁曾经被称为HTTP请求
  • 马克如果是粘(总是使用同一个HTTP客户端相同的TCP连接)的TCP连接,免费

  • 如果一个HTTP客户端连接,他还没有一个,给他会议。
  • 如果没有可用的会话:建立一个TCP连接
  • 制作请求,返回的结果
  • 商店的TCP“连接”的地方在那里当一个请求进来,你可以识别它,你可能会达到它由HTTP客户端会话(也许超时清理)
+0

谢谢。越来越近。 :) 现在问题 node.js如何“存储TCP连接”并在另一个调用中重新打开它 –

+0

将某个变量放在某处不会收集垃圾的地方Node.js是单线程的,因此您只要你不使用子进程就不应该出现问题 – TheHippo

+0

谢谢,它的工作原理 我甚至没有想到它可以如此简单:) –