2013-12-15 85 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

謝謝,它的工作原理 我甚至沒有想到它可以如此簡單:) –