2012-03-21 16 views
1

我發送到talk.google.com與像一個初始節:每增加(XMPP)的初始響應不總是包含<流:特徵>

<?xml version='1.0'?> 
<stream:stream 
from='[email protected]' 
to='gmail.com' 
version='1.0' 
xml:lang='en' 
xmlns='jabber:client' 
xmlns:stream='http://etherx.jabber.org/streams'> 

和作爲rfc6120說,服務器響應應該具有具有標籤節名爲「流:功能」

,但我已經嘗試了很多的時間,但響應中幾乎不含有的「流:功能」所以我必須做出一個循環等待包含「流響應:特徵」。

+0

我想知道是否有什麼我錯過或誤解了XMPP協議? – Javran 2012-03-21 14:57:15

回答

1

您應該stream:features之前獲得stream:stream開放標籤:

<stream:stream xmlns:stream="http://etherx.jabber.org/streams" 
       xmlns="jabber:client" 
       from="gmail.com" 
       id="407014FD9646082B" 
       version="1.0"> 
    <stream:features> 
    <starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"> 
     <required/> 
    </starttls> 
    <mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"> 
     <mechanism>X-GOOGLE-TOKEN</mechanism> 
     <mechanism>X-OAUTH2</mechanism> 
    </mechanisms> 
    </stream:features> 

我希望各位能夠使用在xmpp.org連接到現有的客戶端庫之一。如果您正在進行同步讀取,那麼您在運行良好之前可能會遇到其他一些問題。

+0

終於我發現stream:stream和stream:features之間可能會有一些延遲,也許我應該使用一些庫來讓事情有效。 – Javran 2012-03-22 23:10:34

相關問題