2010-06-25 228 views

回答

2

我必須註冊一個處理程序和處理:

def messageCB(sess,mess): 
    print 'MESSAGE'*100 
    nick=mess.getFrom().getResource() 
    text=mess.getBody() 
    #print mess,nick 
    print text 

client.RegisterHandler('message',messageCB) 

while 1: 
    client.Process(1) 
0

好貼。我注意到這個代碼片段也在xmpppy sourceforge網站的記錄器示例中。

我不知道是否有可能回覆收到的消息。上面的代碼只接收並且暱稱資源ID不指示發件人是誰(以JID格式,用戶@服務器的形式),除非xmpppy能夠適當地轉換。那麼如何才能將收到的消息「回顯」回給發件人呢?或者xmpppy庫不太可能,需要找到一個不同的XMPP庫?當然你也可以的

+0

: 這是一個片段,把它放在FUNC messageCB 客戶端= xmpp.Client( 'yourdomain.com') client.connect(服務器=( 'talk.google.com' ,5223)) client.RegisterHandler( '信息',messageCB) client.auth(用戶名,PASSWD, 'talk.google.com') client.sendInitPresence() 消息= xmpp.Message(至,MSG) message.setAttr(「型」,「聊天」) client.send(消息) – diegueus9 2010-08-24 13:42:05

+0

感謝,但問題是你如何定義「到」字段的消息時,你不知道是誰發送者會是誰?處理程序只是監聽來自任何人的消息。我測試了代碼,返回的資源ID(或缺口)更像是一個會話ID,因爲它不像「user」或「user @ server」。我還沒有測試,但我的假設是,你不能簡單地將收到的nick值作爲你將發送的外發消息的「to」值傳遞給你,或者你可以嗎? – David 2010-08-24 16:26:00

+0

如果你看到mess.getFrom(),你會得到像[email protected]/nick – diegueus9 2010-08-24 17:22:52