2017-07-31 189 views
0

說我有一個Node.js的TCP客戶端TCP客戶端使得第一連接

https://nodejs.org/api/net.html#net_socket_connect_path_connectlistener

我有一個庫,並且文庫需要的主機/端口組合的陣列,以便連接。我希望客戶端只能建立一個連接。

const endpoints = [ 
{host: h1, port: p1}, 
{host: h2, port: p2}, 
{host: h3, port: p3}, 
]; 

我該如何實現一個簡單的機制來嘗試連接到這些?

我的猜測是,最簡單的方法是串接給他們,一個接一個,直到第一個連接。

我關心的是什麼,就是莫名其妙地連接到兩個不同的終端客戶。那可能嗎?

經過第二次考慮 - 嘗試將它們連續超時連接,然後嘗試將它們全部並行連接起來似乎並不是更好或更安全。 這似乎是在第一次「真實」連接之後正確清理連接或半連接所不需要的問題。

回答

1

我認爲,一般來說,每個連接僅持續足夠長的時間來發送一個請求,並得到它的響應。因此連接到多個端點確實是可能的;如果只想連接一個,則需要串行連接。 (或者你可以異步連接並簡單地「接受」第一個響應,儘管如此,你會首先嚐試連接那些不被接受的連接;這是否是問題取決於你想連接的原因到只有一個)。