iT邦幫忙

1

請教不同主機的斷線檢測方式

  • 分享至 

  • xImage

各位版上的大大好,我最近要實作一個檢測物聯網用戶端是否斷線的功能,若檢測斷線後會通知用戶。
大概的狀況如下:
一台主要伺服器:
以node-red(node.js)作為後端運行,主要的邏輯都在這一台主機上,有固定IP。

散落各地的不同用戶端:
同樣也以node-red作為後端運行,有自己的資料庫,但沒有固定IP,用戶端約有60個。

我目前有嘗試過使用mqtt (版本是V5),讓用戶端每隔10秒丟資料給伺服器,但我反覆測試後,發現每隔一段時間我的mqtt會不工作(此時其他不同名稱的mqtt服務有工作),當下網路也是正常的,也沒有出現錯誤訊息,但大約5-15分鐘(並沒有固定的數字)後又會自己恢復正常,這個狀況發生也沒有特定的間隔時間,我不太確定是否是mqtt設定的問題。
想請教各位有沒有其他的通訊方式或作法可以作到這一個功能,或是有熟悉mqtt的大大也可以給我一些建議,用詞上比較不精準的部分也請多指教,謝謝!

DennisLu iT邦好手 1 級 ‧ 2024-10-14 14:37:44 檢舉
以前的MQTT設參數筆記...不知道對你有沒有用
Qos 0:最多傳送一次(at most once) :射後不理,用在即時性訊號
Qos 1:至少傳送一次(at least once):可能會因為斷線,接收端收到一次以上(Server補傳)
Qos 2:確實傳送一次(exactly once) :確實收到接收者回應,確實傳到一次,如果遲遲沒有收又一直累積。

不過檢測斷線,找heartbeat類的服務可能比較有效率吧。
或者是寫一個HTTP API 自己定義自己打。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答