2010-01-24 36 views
1

我正在寫我的第一個網絡應用程序。它操作jabber客戶端並與IQ-stanzas通信。但細節並不重要。通過流與查詢進行通信。什麼是正確的方式?

此交互通過扭曲的xmlstream(python語言)工作。典型的情況在這裏描述:http://juick.com/help/api/xmpp/簡而言之,我可以發送一個「查詢」,服務器依賴於「結果」。

我實施了一些基本操作,例如「發送消息」,「對收到的消息執行操作」。問題在於與流操作。使用延遲從服務器請求任何數據會更好嗎?以及如何將結果返回到需要的地方?

您可以通過我的代碼在這裏看看:http://bitbucket.org/boh/tmp/src/56c131cd1e62/juick_app/twisted_app.py 我試圖使其極簡。

+1

您的API鏈接已停用。 – Tobu 2010-01-24 20:13:04

回答

0

要將答覆與答覆配對,請使用iq.id屬性。您可以將一些延遲存儲在由id索引的緩存中,並在獲得答覆時運行它們。由於XMPP是基於TCP的,因此無論如何您都會以正確的順序獲得答覆。如果延遲已經在緩存中一段時間​​,您可以限制緩存並運行延遲的errback。

+0

你得到答覆的順序與TCP流無關;只是保證你按照它們到達服務器輸出隊列的順序獲得它們,但是一個線程服務器可能已經按任意順序處理它們。 – 2010-01-24 22:29:23

+0

因此,我的「主要」和關聯緩存。 – Tobu 2010-01-24 23:02:16

相關問題