2011-06-28 40 views
2

這是我用例:如何處理與SleekXMPP XMPP訂閱或Python我一般

  1. 用戶點擊網頁鏈接說:「按照這個人的XMPP」
  2. 腳本啓動,並得到(基於註冊數據)請求者的用戶名和密碼並啓動。
  3. 發送訂閱請求。如果訂閱已經發送,腳本不應該發送另一個訂閱。如果訂閱被拒絕,腳本應通知用戶。
  4. 腳本應該然後退出

這裏是我到目前爲止的代碼,使用SleekXMPP

import sys, sleekxmpp, logging 

if sys.version_info < (3, 0): 
    reload(sys) 
    sys.setdefaultencoding('utf8') 

#This is hardcoded here, for illustration. 
jid = '[email protected]******.com/Work' 
password = '********' 
targetjid = '[email protected]*******.com/Work' 

class SubscribeWorker(sleekxmpp.ClientXMPP): 
    def __init__(self, jid, password): 
     sleekxmpp.ClientXMPP.__init__(self, jid, password) 
     self.add_event_handler("session_start", self.start) 

    def start(self, event): 
     self.send_presence(pto=targetjid, ptype='subscribe') 
     self.get_roster() 

if __name__ == '__main__': 
    logging.basicConfig(level=5,format='%(levelname)-8s %(message)s') 
    xmpp = SubscribeWorker(jid, password) 
    if xmpp.connect(): 
     xmpp.process(threaded=False) 
     print("Done") 
    else: 
     print("Unable to connect.") 

這成功地發送一個請求,但它並不需要高度的任何現有的請求或訂閱狀態。有沒有人有使用XMPP進行訂閱/取消訂閱處理的示例代碼? 我試圖理解wiki和代碼示例 - 我真的有,我只是暫時用這段代碼卡住了。

在此先感謝您的任何意見。

回答