django + xmppy: 给两个接收者发送消息

0 投票
1 回答
755 浏览
提问于 2025-04-15 21:35

我正在尝试使用xmpppy从一个django网站发送jabber消息,这个功能完全没问题。

不过,消息只会发送给收件人列表中的第一个人。这种情况发生在我从django运行以下函数时,也发生在我从交互式python环境中运行时。奇怪的是,如果我把这个函数的主体提取出来并在交互式环境中运行,那么所有的收件人(目前只有两个)都会收到消息。

另外,我知道内部的for循环确实运行了正确的次数(2次),因为打印语句确实执行了两次,并返回了两个不同的消息ID。

这个函数是这样的:

def hello_jabber(request, text):
    jid=xmpp.protocol.JID(settings.JABBER_ID)
    cl=xmpp.Client(jid.getDomain(),debug=[])
    con=cl.connect()
    auth=cl.auth(jid.getNode(),settings.JABBER_PW,resource=jid.getResource())
    for friend in settings.JABBER_FRIENDS:
        id=cl.send(xmpp.protocol.Message(friend,friend + ' is awesome:' + text))
        print 'sent message with id ' + str(id)
    cl.disconnect()
    return render_to_response('jabber/sent.htm', locals())

1 个回答

0

在xmpppy中开启调试选项,这样你就可以看到xmpp客户端在做什么了。

撰写回答