2017-07-31 148 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

我认为,一般来说,每个连接仅持续足够长的时间来发送一个请求,并得到它的响应。因此连接到多个端点确实是可能的;如果只想连接一个,则需要串行连接。 (或者你可以异步连接并简单地“接受”第一个响应,尽管如此,你会首先尝试连接那些不被接受的连接;这是否是问题取决于你想连接的原因到只有一个)。