0
我有一個GChome擴展,它偵聽XMPP服務器。 我使用Strophe進行BOSH連接。 問題是「我應該如何處理連接?」從XMPP核心維基,我發現最後一個連接/優先級的客戶端接收消息。當用戶從其他地方登錄時,分機停止接收消息。我怎樣才能管理這種連接缺席。我希望這個問題不是很含糊=)。保留一個XMPP連接
我有一個GChome擴展,它偵聽XMPP服務器。 我使用Strophe進行BOSH連接。 問題是「我應該如何處理連接?」從XMPP核心維基,我發現最後一個連接/優先級的客戶端接收消息。當用戶從其他地方登錄時,分機停止接收消息。我怎樣才能管理這種連接缺席。我希望這個問題不是很含糊=)。保留一個XMPP連接
確保您爲每個連接使用不同的資源。要做到這一點,最簡單的方法是讓服務器產生的資源名稱,如RFC 3920bis, section 7.5規定,由具有客戶端發送:
<iq id='tn281v37' type='set'>
<bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/>
</iq>
,看服務器與全所產生的Jabber ID迴應:
<iq id='tn281v37' type='result'>
<bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>
<jid>
[email protected]/4db06f06-1ea4-11dc-aca3-000bcd821bfb
</jid>
</bind>
</iq>
請記住,服務器可能會強制執行資源的最大數,那麼你可能會得到一個錯誤:當你提到「用戶正在從行吟詩人登錄
<iq id='wy2xa82b4' type='error'>
<error type='wait'>
<resource-constraint
xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
</iq>
r place「,用戶是否使用與Extension一模一樣的資源登錄?按照設計,XMPP每個用戶PER資源只允許1次登錄(如果你在兩個不同的地方登錄爲不同的資源,它就可以工作)。但是,XMPP服務器的管理員有能力強制用戶只能登錄到XMPP服務器 - 一切取決於配置。 – DashK 2010-09-24 11:30:16