2013-12-11 105 views
2

我使用Openfire作爲XMPP的服務器。我面臨的問題是用戶每隔幾分鐘就會被踢出局面,儘管我將服務器設置更改爲「不踢空閒用戶」。用Javascript發送ping到XMPP服務器

我在尋找這個問題,並且我從很多帖子中發現很多人都面臨同樣的問題,他們通過不停地ping服務器來解決問題。

然後我找到了節在XMPP坪,這是以下幾點:

<iq from='capulet.lit' to='[email protected]/balcony' id='s2c1' type='get'> 
    <ping xmlns='urn:xmpp:ping'/> 
</iq> 

但我不能將它正確轉換爲JavaScript。

我嘗試以下,但它仍然沒有工作

setInterval(function(){ 
      var message = $msg({to: [server hostname] , 
            from: [user jid], 
            "type": "get"}) 
            .c('query', {xmlns: "urn:xmpp:ping"}); 
        connection.sendIQ(message); 
},50000); 

我將不勝感激任何幫助。

謝謝!

+0

你用什麼語言來創建和發送節? PHP還是Javascript?還是兩者的結合?此外,你正在建立一個消息節,但發送它,就像它是一個智商節。 –

+0

這是在JavaScript中,我寫錯誤的PHP,因爲我在其他地方使用它。我已經重新編輯了我的問題。謝謝 – firewall

+0

你在使用Strophe.js嗎? –

回答

3

您正在構建消息節而不是IQ智能節。您需要創建一個IQ節來ping服務器。您在節內創建的子元素也是錯誤的。元素名稱應該是ping而不是query

connection.sendIQ($iq({to: server, from: jid, type: "get"}).c('ping', {xmlns: "urn:xmpp:ping"})); 
+0

感謝Kermal!我現在就試試吧 – firewall

+0

把''get')'改成''get'})' – AhmadWabbi

+0

@AhmadWabbi修好了,謝謝。 –