2013-12-11 108 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修好了,谢谢。 –