2010-06-25 189 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