使用strophe与ejabberd bosh连接到localhost上的jid帐户时连接失败

时间:2012-10-31 20:29:01

标签: xmpp ejabberd strophe bosh

我在我的机器上安装了ejabberd并且运行正常。

localhost:5280/admin

localhost:5280/http-bind

它还显示“ejabberd mod_http_bind XMPP over BOSH(XEP-0206)的实现”我猜它工作正常。

当我尝试使用Strophe创建连接时,我将连接状态设为CONNFAIL

我的代码如下:

var conn = new Strophe.Connection('http://localhost:5280/http-bind');
conn.connect(data.jid, data.password, function (status) {

// jid=user@localhost


if(status===Strophe.Status.CONNECTING){

alert('connecting...!!');

}

if(status===Strophe.Status.AUTHFAIL){

alert('auth failure...!!');

}

if(status===Strophe.Status.CONNFAIL){

alert('connection falied !!');

}}

我不断获得CONNFAIL

我还在apache httpd.conf文件中为http://localhost:5280/http-bind添加了proxypass。

我无法弄清问题是什么。

1 个答案:

答案 0 :(得分:1)

要调试ejabberd是否真的收到您的Bosh请求,请使用{log_level, 5}重新启动ejabberd(在/etc/ejabberd/ejabberd.cfg文件中设置此项)。然后,当您使用strophe连接到ejabberd时,请通过执行tail -f /var/log/ejabberd/ejabberd.log来查看日志。如果您没有看到任何内容,则表示您的请求在代理上下文中的某个位置失败。如果您确实看到了某些内容,请通过相关日志更新您的问题,以便我们更好地帮助您。

或者,您可以通过ejabberd调试shell动态更新log_level

$ sudo ejabberdctl debug
....
Eshell V5.8.5  (abort with ^G)
(ejabberd@localhost)1> ejabberd_loglevel:set(5).
{module,ejabberd_logger}
(ejabberd@localhost)2>

注意:我假设ejabberd.cfgejabberd.log的标准安装路径。如果您有备用安装前缀,请相应地更新路径。