我试图在Ubuntu 12 (Linode最新版本)上使用内部的Ejabberd the服务器设置Strophe来提供聊天服务。
测试urls (http-bind和admin)都可以工作。
JWChat工作。
Strophe抛出一个错误:
In Strophe:
RECV: <body xmlns='http://jabber.org/protocol/httpbind' type='terminate' condition='internal-server-error'>BOSH module not started</body>
In ejabberd.log:
E(<0.468.0>:ejabberd_http_bind:1236) :
You are trying to use BOSH (HTTP Bind) in host "admin", but the module mod_http_bind is not started in that host.
Configure your BOSH client to connect to the correct host, or add your desired host`安装过程很简单(虽然需要很长时间才能完成):
对ejabberd.cfg的更改:
%% In listening ports, amended the following lines:
{ request_handlers, [
{["pub"], mod_http_fileserver},
{["http-bind"], mod_http_bind}
]},
%% In modules, added the following:
{ mod_http_fileserver, [
{docroot, "/var/lib/ejabberd/www"},
{accesslog, "/var/log/ejabberd/access.log"}
]},
{mod_http_bind, []},任何帮助都将不胜感激。
发布于 2013-02-27 08:56:59
答案是相当明显的。
Strophe需要以下格式的用户名:
用户名@主机 例如:admin@example.com
否则,它假设用户名实际上是主机,并且由于这样的主机不存在,它引发一个错误,即mod_http_bind is not started in that host
这个错误充其量是误导性的,但它在技术上确实解释了这个问题。
我只是尝试用用户名登录,这个用户名在JWChat中工作得很好,因此出现了这个问题。
如果这不起作用,需要验证的其他一些事情的清单如下:
https://stackoverflow.com/questions/15101140
复制相似问题