我正在编写我的第一个网络应用程序。它操纵jabber客户端并与IQ-stanzas通信。但细节并不重要。
这种交互通过扭曲的xmlstream(python语言)工作。这里描述了典型的情况:http://juick.com/help/api/xmpp/简而言之,我可以发送一个“查询”,服务器依赖于“结果”。
我实施了一些基本操作,例如“发送消息”,“对收到的消息执行操作”。问题在于使用流操作。使用延迟来从服务器请求任何数据是否更好?以及如何将结果返回到需要的地方?
您可以在此处查看我的代码:http://bitbucket.org/boh/tmp/src/56c131cd1e62/juick_app/twisted_app.py 我试图让它变得简约。
答案 0 :(得分:0)
要将回复与回复配对,请使用iq.id属性。您可以将一些延迟存储在由id索引的缓存中,并在收到回复时运行它们。由于XMPP是基于TCP的,因此无论如何都会以正确的顺序获得回复。如果延迟已经在缓存中存在一段时间,您可以限制缓存并运行延迟的错误。