2016-04-25 213 views
0

我有一台服务器和多个客户端。服务器想要在每个想要的设备上运行shell脚本。绝对不可能通过简单的套接字,因为我们可能有数千个设备。服务器和设备也应始终通过套接字连接。经过大量搜索后,我发现解决方案可能是NAT-T。但是我仍然不知道如何使用它或者是否有其他解决方案。 请帮我在客户端和服务器上做什么。在服务器上远程运行客户端shell脚本

+0

每个装置上,所以使用ssh?有nodejs库来做到这一点。如果你打开一个套接字(如果你有或者没有,现在不清楚),你可以使用类似于子进程通信的东西吗?你为什么要使用NAT?这听起来更像是节点之外的网络层问题。您是否可以从服务器访问设备,或者只能将设备连接到服务器? – CFrei

+0

那么客户的地址和端口是什么?客户的地址也可能改变。问题是我如何通过服务器访问客户端。 – Beaumind

回答

0

如果您不知道客户端地址和端口,则需要与客户端连接到服务器。 1000年的设备是没有问题的。您在大约65000个开放端口上运行套接字限制(检查ulimit)。在客户端和服务器之间构建一个对象流,并根据客户端接收的对象执行脚本。你也可以在客户端设置一个时间间隔,让他们每隔n秒检查一次简单的http(s),如果有什么需要做的话。

例如,见这里:Node Stream Docs 或者在这里:Node HTTP Docs

+0

那么,如果客户数量超过65000呢? – Beaumind

+0

您需要另一种方法 - 例如http。但是如果你有超过65000个客户端,你可能需要一个真正的架构。看看一些物联网架构方法,例如从亚马逊aws或其他人... – CFrei

+0

我认为localtunnel将解决问题:) – Beaumind

相关问题