我正在一个项目中工作,我们需要将客户端连接到LAN网络后面的设备。
简要说明:有"设备"例如,在家中连接由路由器创建的LAN。这些设备创建了一个完整的Web服务器,在linux下运行,并使用nodejs作为后端实现语言。他们还可以通过路由器的公共IP访问Internet。另一方面,有些客户可以选择连接哪个设备。
目标是将客户端与任何设备创建的webServer连接。
到目前为止,我的想法是尝试实现类似于TeamViewer的工作方式。据我所知,Teamviewer有一个中央服务器,代理连接到该服务器。当代理连接到中央服务器时,此连接将获得TCP连接,使其保持活动状态。当另一个客户端想要访问第一个客户端时,服务器会绕过两个TCP连接。这样,服务器就像一个代理,它还可以路由TCP连接。这也允许连接到LAN或防火墙下的客户端(因为始终从客户端创建连接)。
如果这是正确的,我想要实现的是在nodejs中的中央服务器,它管理来自不同活动设备的套接字连接池,当客户端想要连接到一个特定设备时,服务器使用已有的设备连接绕过客户端的传入TCP连接。
我首先想知道的是如果在nodejs中这是可能的。我的想法是保持设备连接处于活动状态,以便客户端可以立即连接到它们,从而创建某种设备连接池。
如果在C中实现,我想我可以抓住套接字描述符,使其保持活动状态,并将其绕过传入的客户端请求。但是在nodejs中,我似乎找不到任何管理TCP连接的模块。
是否有任何高级别的npm软件包可以执行此功能?否则,是否可以使用具有这些功能的较低级别模块(如网络)。
理想情况下,我想用高级模块(快速)实现它,但如果不可能,我总是可以使用低级模块重写服务器。
提前致谢