Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 16, 2010 17:19:35

boh
От:
Зарегистрирован: 2009-12-05
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Взаимодействие с twisted.internet.reactor

Пытаюсь разобраться с Twisted, в часности его работой с XMPP. В связи с этим возникает вопрос:
Мне нужно принимать/отсылать сообщения с помощью джаббер-клиента twisted.
http://pastebin.com/m71225776
Не совсем понятно, как взаимодействовать с этим клиентом из вне, если все его действия определяются “внутри” обработчиками событий. Можно создавать свои события? Укажите направление, пожалуйста.



Офлайн

#2 Янв. 16, 2010 18:52:46

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Взаимодействие с twisted.internet.reactor

Не совсем понятно, что именно вы хотите. Можете сформулировать вопрос более развернуто?



Офлайн

#3 Янв. 16, 2010 19:01:09

boh
От:
Зарегистрирован: 2009-12-05
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Взаимодействие с twisted.internet.reactor

Андрей Светлов
Не совсем понятно, что именно вы хотите. Можете сформулировать вопрос более развернуто?
После запуска реактора мой клиент может ловить сообщения, но как мне отправить с его помощью сообщение, если необходимость в отправке не связана с событиями twisted - т.е. не имеет обработчика?



Офлайн

#4 Янв. 19, 2010 04:23:34

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Взаимодействие с twisted.internet.reactor

Так сделайте что-то вроде:
iq = xmlstream.IQ(self.stream)
iq.addChild(request_xml)
d = iq.send(self_jid.full())
d.addCallback(on_reply)
d.addErrback(on_error)

вместо addCallback/addErrback приятней использовать twisted.internet.defer.inlineCallbacks



Офлайн

#5 Янв. 19, 2010 05:39:18

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Взаимодействие с twisted.internet.reactor

> вместо addCallback/addErrback приятней использовать twisted.internet.defer.inlineCallbacks
Очень субъективное мнение.

..bw



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version