Подписка нового получателя: update_roster(), кажется, зависает
У меня есть небольшой скрипт на 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)
1 ответ
Решение
Хорошо, видимо, я просто решил это сам. Изменено subscription="both"
в subscription="to"
- так утверждение выглядит так:
self.update_roster(recipient,block=False,subscription="to")
:-)