2
我正在使用mqtt和蚊子代理爲Android平臺構建簡單的即時聊天。現在我想實現一個條件,任何客戶端都可以檢查另一個客戶端是否在線。Mqtt檢查客戶端是否在線或離線
我知道Last will and testament
,但我希望只有在應用程序處於非活動狀態或用戶當前未使用該應用程序時,纔會離線檢測到用戶。
我其實需要任何代碼,bu想要一個想法如何實現這一點,我將非常感激。
我正在使用mqtt和蚊子代理爲Android平臺構建簡單的即時聊天。現在我想實現一個條件,任何客戶端都可以檢查另一個客戶端是否在線。Mqtt檢查客戶端是否在線或離線
我知道Last will and testament
,但我希望只有在應用程序處於非活動狀態或用戶當前未使用該應用程序時,纔會離線檢測到用戶。
我其實需要任何代碼,bu想要一個想法如何實現這一點,我將非常感激。
您可以在不依賴MQTT內部結構的情況下執行此操作,這在我看來更容易。通過這種方法,您可以更好地控制發生的事情:
客戶端可以定期在另一個主題內發送消息,以通知服務器其可用性。如果服務器在指定的時間後沒有收到該消息,則可以認爲它處於脫機狀態。
如果用戶註銷並通知服務器井,客戶端也可以發送另一條消息。
如果你堅持使用MQTT內部結構,你會發現這個問題非常有用: How to Find Connected MQTT Client Details
您可以手動設置LWT話題,當應用程序被關閉(其實你無論如何都要做到這一點,因爲LWT會只有當客戶因網絡問題/崩潰而離線時纔會觸發) – hardillb