xmpppy как отправить объект iq?

У меня есть внутренний сервер xmpp (openFire), и я разрабатываю клиент для чата.

Я использую xmpppy и pyqt для этого, но у меня есть некоторые проблемы с разговором сервер / клиент.

Я хотел бы попробовать, есть обработчик, чтобы получить версию чата.

обработчик:

self._client.registerHandler("iq", self.handleVersion, typ = "get", ns = xmpp.NS_VERSION)

def handleVersion(self):
    print "do stuff"

этот обработчик работает, если я использую другой клиент чата и спрашиваю версию. (т.е. Spark 2.6.3)

iq-объект, отправленный Spark для запрашиваемой версии:

<iq xmlns="jabber:client" to="myUserName@myServer/519c3e1e" type="get" id="reLOy-26" from="contactName@myServer/Spark 2.6.3"><query xmlns="jabber:iq:version" /></iq>

но, если я пытаюсь сделать тот же объект iq с моим клиентом чата, он не работает (он не входит в def handleVersion(self):

когда я создаю свой собственный запрос:

reply = xmpp.protocol.Iq(to="uga@chob04", typ="get", frm="phid@chob04", xmlns ="jabber:client") #, 
reply.setQueryNS(xmpp.NS_VERSION)
self._client.send(reply)

мой Iq объект перед отправкой:

<iq xmlns="jabber:client" to="myUserName@myServer" from="contactName@myServer" type="get"><query xmlns="jabber:iq:version" /></iq>

и после отправки это:

<iq to="myUserName@myServer" from="contactName@myServer" id="9" type="get"><query xmlns="jabber:iq:version" /></iq>

Я не знаю, почему этот запрос не работает.

0 ответов

Другие вопросы по тегам