2011-04-26 36 views
1

處理傳入的消息我想寫XMPP客戶端(沒有波什,直接TCP連接)的實現。XMPP:異步

試圖找出如何響應處理傳入的消息,以我自己的請求,並知道哪些應對涉及的要求,大多數協議標籤有一些獨特的ID和服務器請求發送與響應ID。

我已經看到了IQ節的ID參數,但據報道它們標識會話,而不是唯一的消息...

什麼是處理這個問題的最好方法?

+0

XMPP是一個成熟的協議。爲什麼不使用圖書館? http://xmpp.org/xmpp-software/libraries/ – h3xStream 2011-04-26 20:43:53

+0

我,strophe.js但我做了調整,爲它在一個js基礎平臺,而無需波什工作,使用直接TCP的,所以我需要做出一些改變和這個問題來了..在RFC RFC – 2011-04-26 21:00:32

回答

1

在IQ節ID屬性綁定的請求(獲取或設置)的響應(結果或錯誤)。對於每個請求,都應該使用新的ID。這是跟蹤每個請求的響應的方式。

+0

我記得閱讀ID屬性是每個會話,而不是預先消息,我得到它錯了嗎? – 2011-04-27 05:50:03

+0

ID屬性是每個節(消息),而不是每個會話 – 2011-04-27 11:53:06

1

RFC 6120有智商如何工作的一個很好的說明。請確保你匹配發送方接收節的ID,以確保其他人未在猜測你的身份證號碼。典型的模式是使用IQtracker,你這樣調用(僞代碼):

iq = create_xml_dom_that_is(<iq id='[counter++]' type='get' to='receiver'/>) 
track(iq, callback) 

在當我們從接收機接收的IQ節與預期的ID回調函數被調用,或當一些時間跨度已經達到沒有得到迴應。