django + xmppy: 给两个接收者发送消息
我正在尝试使用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客户端在做什么了。