2016-09-30 73 views
0

我試圖找到一個解決方案來檢查用戶是否通過jid作爲參數登錄,但沒有成功。如何知道指定的JID是否已連接到服務器?

我不知道是否有辦法檢查這一點,而無需登錄到服務器。在日誌記錄之前驗證jid是否已經登錄,然後使用阻止訪問的消息處理。我正在使用agsXMPP庫。 有誰知道如何解決它?

回答

0

您可以嘗試直接從服務器通過JID獲得狀態,而無需登錄。例如,在開放式壁爐:所以你知道他是否在線

http://example.com:9090/plugins/presence/[email protected]&type=xml

會退給你的用戶存在。

我不相信agxmpp sdk自己有任何這樣的方法。

+0

我該怎麼做?因爲當我調用檢查存在的方法時,如果帳戶被記錄,它將被註銷。它通過JID檢查存在隊列,但是這是在公共服務器中處理的,並且協議的方法是異步的。 –

+0

你能改說你的問題嗎? 我的意思是任何人(匿名)應該能夠得到公共存在給定的JID(配置當然需要在服務器端),這將表明如果用戶是在線或離線。這不是100%可靠的,因爲如果用戶由於除註銷之外的其他原因而下降,它總是存在聯合發佈的一些延遲。 –

+0

好的,但是恰好我想在沒有任何登錄的情況下檢查用戶的存在。例如:如果您有一個帳戶X並且想要登錄到服務器,而是驗證該帳戶已被其他人記錄,如果您已經登錄了一條說明該帳戶已被使用的通知。會發生什麼情況是,如果我要登錄帳戶X並已擁有另一個關聯人員,則服務器只需在建立身份驗證之前斷開建立的連接。 –

相關問題