Xmpp BOSH模块未启动:Ejabberd/Strophe设置问题

Xmpp BOSH模块未启动:Ejabberd/Strophe设置问题,xmpp,ejabberd,strophe,Xmpp,Ejabberd,Strophe,我试图在Ubuntu12(Linode最新版本)上用Ejabberd网站服务器安装Strophe,为聊天服务 测试URL(和)都可以工作。 JWChat有效。 Strophe抛出一个错误: In Strophe: RECV: <body xmlns='http://jabber.org/protocol/httpbind' type='terminate' condition='internal-server-error'>BOSH module not started</bo

我试图在Ubuntu12(Linode最新版本)上用Ejabberd网站服务器安装Strophe,为聊天服务

测试URL(和)都可以工作。
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`

任何帮助都将不胜感激。

答案很明显

Strophe需要以下格式的用户名:

username@host
如。admin@example.com

否则,它会假定用户名确实是主机,并且由于这样的主机不存在,它会抛出一个错误,即该主机中没有启动mod_http_bind

这个错误充其量只是一种误导,但从技术上讲,它确实解释了这个问题。
我试图只使用用户名登录[在JWChat中工作正常],因此出现了问题

如果这不起作用,请提供一些其他需要验证的事项的清单:

  • 确保您的域已添加到/etc/hosts

    127.0.0.1    localhost.localdomain   localhost
    12.34.56.78  squire.example.com  squire
    
  • 确保您的域已添加到/etc/ejabberd/ejabberd.cfg

    %% Hostname
    Hostname {hosts, ["example.com","98.765.43.21","localhost"]}.
    
  • 确保您的用户名存在并已注册:

    ejabberdctl register username example.com password
    
    如果用户是管理员,则包含在ejabberd.cfg中[注意:它必须也注册!]

    %% Admin user
    {acl, admin, {user, "", "localhost"}}.
    {acl, admin, {user, "admin", "example.com"}}.
    
  • 检查服务器是否正在运行:

    a. sudo ejabberdctl status  
    b. http://example.com:5280/admin  
    c. http://example.com:5280/http-bind
    
  • 如果有问题,重新开始使用这两种方法(我知道理论上你不需要这两种方法。在实践中,有时使用一种或另一种方法是不正确的。)

  • 检查日志-/var/log/ejabberd/ejabberd.log()

  • 安装JWChat并尝试(或者,如果您有JWChat,请安装Strophe)。
    以下简短教程非常宝贵,请严格遵循:

  • a. sudo ejabberdctl status  
    b. http://example.com:5280/admin  
    c. http://example.com:5280/http-bind
    
    sudo /etc/init.d/ejabberd restart
    sudo ejabberdctl restart