簡體   English   中英

如何在同一個局域網中找到 Socket.IO 服務器?

[英]How to find Socket.IO server on the same LAN?

我開發了一個連接同一網絡上的設備的應用程序。

任何設備都可以作為服務器,我希望客戶端能夠自動找到服務器,而無需用戶手動輸入服務器的 IP 地址。

這是我打算這樣做的方式:

  1. 找到客戶端的IP,例如192.168.0.2
  2. 循環通過 192.168.0.(0->255)
  3. 嘗試連接所有這些 IP 直到連接成功

這是正確的方法嗎? 我可以做得更快嗎? 同一個網絡上的IP總是在xxx(0->255)范圍內嗎?

如果相關,我同時使用 Java 和 JavaScript(Node.js)。

這里的一種選擇:而不是“迭代”地址范圍並向每個地址發送單獨的數據包; 您可以考慮向整個子網發送廣播

換句話說:你的客戶只是大喊“我在這里”; 服務器“聽到”並響應; 類似於 DHCP 等協議的工作方式。

編輯關於如何對“廣播未接聽”做出反應的評論:

實際上,您現在越來越接近那些使“分布式”計算變得困難的主題。 可能會出現許多問題; 以及許多不同的解決方案。

它開始於:您是否進行一次廣播; 還是嘗試多次?! 並且可能會增加后續廣播之間的延遲?

事情是:這里沒有人可以告訴你。 答案在很大程度上取決於您的“域”,以及對您的應用程序用戶最有意義的內容。

我的建議是:研究現有的做類似事情的開源產品; 並研究他們發現了什么樣的問題; 以及他們如何處理。 我知道,這是相當廣泛的; 但那個“廣度”來自“整個主題真的很廣泛”。

udp 廣播是我的客戶端在本地網絡上找到我的服務器的方式。 服務器發回套接字服務器用於連接的端口號

當服務器運行時,響應幾乎是即時的,所以我只有 2 秒的超時時間,並且只嘗試一次

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM