2012-08-10 53 views
0
import sleekxmpp 

class SendMsgBot(sleekxmpp.ClientXMPP): 
    def __init__(self, jid, password, recipient, wsh): 
     print "jid is " + jid 
     sleekxmpp.ClientXMPP.__init__(self, jid, password) 
     print "self jid is " + self.jid 

我使用的是SleekXMPP,如上所示,他們的basic example。當我創建SendMsgBot時,我提供了jid作爲[email protected]/resource。然而,從上面的代碼的輸出給了我:SleekXMPP:獲取ClientXMPP JID資源?

jid is [email protected]/resource 
self jid is [email protected] 

是否有可能找出一個sleekxmpp.ClientXMPP的資源?我知道資源正在使用,因爲數據在原始XMPP節中存在。我看到有一個JID class,但我不知道如何從ClientXMPP賈德到那。

謝謝!

回答

1

有一個self.boundjid字段,它是會話綁定期間設置的JID。由於這是一個JID對象,因此您可以使用self.boundjid.resource

+0

另外,最好在會話開始後(即在session_start事件處理程序中)檢查。即使您最初請求特定資源,但並不能保證您在綁定時實際上會分配該資源。 – 2012-08-10 19:08:44

+0

非常感謝您的項目和您的答案! – Joseph 2012-08-10 19:13:13