订阅新收件人:update_roster() 似乎挂起
Subscribing new recipient: update_roster() seems to hang
我有一个小的 python 脚本可以将 xmpp 消息发送给给定的收件人。如果收件人已有订阅,则此方法效果很好 - 否则将不会传递邮件。
由于系统定期有新用户加入,我想到了使用 update_roster(recipient,block=False,subscription="both")
自动订阅新收件人的想法。但不幸的是,脚本似乎挂在那里。
为什么?
查看下面我的代码...
class SendMsgBot(sleekxmpp.ClientXMPP):
def __init__(self, jid, password, recipient, message):
sleekxmpp.ClientXMPP.__init__(self, jid, password)
self.recipient = recipient
self.msg = message
self.add_event_handler("session_start", self.start)
def start(self, event):
self.send_presence()
self.get_roster()
if self.msg =="":
# HERE IT IS ....
self.update_roster(recipient,block=False,subscription="both")
else:
self.send_message(mto=self.recipient,
mbody=self.msg,
mtype='chat')
self.disconnect(wait=True)
好的,显然我自己解决了这个问题。将 subscription="both"
更改为 subscription="to"
- 因此语句如下所示:
self.update_roster(recipient,block=False,subscription="to")
:-)
我有一个小的 python 脚本可以将 xmpp 消息发送给给定的收件人。如果收件人已有订阅,则此方法效果很好 - 否则将不会传递邮件。
由于系统定期有新用户加入,我想到了使用 update_roster(recipient,block=False,subscription="both")
自动订阅新收件人的想法。但不幸的是,脚本似乎挂在那里。
为什么?
查看下面我的代码...
class SendMsgBot(sleekxmpp.ClientXMPP):
def __init__(self, jid, password, recipient, message):
sleekxmpp.ClientXMPP.__init__(self, jid, password)
self.recipient = recipient
self.msg = message
self.add_event_handler("session_start", self.start)
def start(self, event):
self.send_presence()
self.get_roster()
if self.msg =="":
# HERE IT IS ....
self.update_roster(recipient,block=False,subscription="both")
else:
self.send_message(mto=self.recipient,
mbody=self.msg,
mtype='chat')
self.disconnect(wait=True)
好的,显然我自己解决了这个问题。将 subscription="both"
更改为 subscription="to"
- 因此语句如下所示:
self.update_roster(recipient,block=False,subscription="to")
:-)