[英]Determine if an XMPP user is online or not
我正在使用xmpppy
庫來編寫可以與用戶聊天的XMPP客戶端。 它有自己的XMPP用戶帳戶,需要知道給定用戶是否在線。 但是,如何執行此操作的文檔有點稀疏。 你會推薦什么?
到目前為止,我看到的唯一解決方案是在XMPP服務器啟動之前啟動一個守護程序並監視發出的所有在線消息 - 如果用戶發送了“我在線”,則稱該用戶在線-type消息但不是相應的“我正在注銷”消息。 但是,作為XMPP的新手,我認為會有更好的方法來做到這一點。
基本上有三種方法可以連接到XMPP服務器:作為客戶端(您已經完成),作為組件,以及作為另一個服務器。 服務器到服務器類型(s2s)只是一個聯合連接,非常類似於郵件服務器如何相互交換電子郵件。
亞歷克斯描述了客戶如何跟蹤存在。 XMPP要求我批准您可以接收我的狀態信息,反之亦然。 對於您的機器人,這意味着您可以跟蹤最終用戶接受您的狀態請求所需的在線用戶。 這也意味着您可以響應用戶的狀態請求,並隨時了解您的機器人是否已啟動。
最后一種方法是作為可信組件,只有在運行服務器時才有效。 即如果你試圖在jabber.org服務器上這樣做,你運氣不好,因為你沒有運行該服務器。 upsdie是你可以訪問XMPP服務器的內部,比如拉動每個在線人員的列表。 缺點是您的組件/機器人實現對於每個服務器實現都會有所不同。
您可能希望看到問題“Jabber bot - 如何獲得聯系人的可用性?” 。 如果我理解你的問題,我認為這與它有關。
當然,正如Alex指出的那樣,無論如何你需要訂閱用戶的存在 - 但你似乎已經理解了這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.