使用XMPPPY向所有登录的客户端发送Google Talk消息

时间:2012-08-27 14:53:23

标签: python google-talk xmpppy

我有一个小程序,使用XMPPPY向我发送消息,但是,有时在发送消息时我只在其中一个登录的客户端上收到消息。通过gmail界面发送时,我总是在所有登录的客户端上收到它。

这是我的代码:

username = ''
password = ''

class Gtalk():
    def send(self, recipient, message):
        self.jid=xmpp.protocol.JID(username)
        self.client=xmpp.Client(self.jid.getDomain())

        self.connection = self.client.connect()

        self.auth=self.client.auth(
        self.jid.getNode(),
            password,
            resource=self.jid.getResource()
        )

        self.client.sendInitPresence(requestRoster=0)

        self.client.send(xmpp.protocol.Message(
            recipient, message
        )
    )

g = Gtalk()
g.send('', 'Hello')

是否有人知道如何使用出现在所有登录的Gmail客户端上的XMPPPY发送消息?

1 个答案:

答案 0 :(得分:0)

参见https://stackoverflow.com/a/2473747 JID(Jabber / XMPP ID以及Google Talk ID)有以下几种形式: 首先是“裸JID”,例如:user@example.com 其次是“完整的JID”,例如:user@example.com/xyz123,其中xyz123被称为资源。

您使用完整的JUD,这就是为什么只在xyz123客户端上显示您的消息。