2016-04-25 247 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

相關問題