我是服务器托管方面的新手,我想在我的 iphone/android 应用中实现一个多用户聊天室。我发现 xmpp 正是我需要实现的,对于服务器,ejabberd 可能是一个不错的选择(因为它的可扩展性和可靠性)。
我找到了一篇文章切萨雷·罗基展示如何启动 ejabberd 服务器进行测试(我注意到我的 ejabberd 版本是 2.1.13,教程中的版本是 2.1.8,但仍然尝试一下)但失败了。作者使用 iChat 和 Adium 测试服务器启动后是否正常工作。我按照他的步骤将域设置为“localhost”,将管理员设置为“vivi@localhost”。在 ejabberd 网页管理界面的访问控制列表中,我添加了一个名为“user@localhost”的用户。在 Adium 上,我添加了一个 xmpp 用户“user@localhost”,连接服务器为“localhost”,端口号为 5222。但是,我收到错误“错误:服务器关闭了连接”。
我尝试输入命令“netstat -an | grep LISTEN”来验证 5222 端口当前正在监听。当我停止 ejabberd 服务器时,Adium 的状态变为错误:无法连接。看起来好像有什么东西阻塞了连接。
我尝试在 Google 上搜索了几天,但找不到合适的解决方案。有谁能为这个问题提出可能的解决方案吗?
答案1
有几点需要您尝试。首先,确保您没有或只有低分辨率的头像集。与 Adium 和 ejabberd 相关的一个突出错误为此。接下来,以调试模式启动 Adium(启动时按住 Option),这样您就可以获得日志输出并查看 Adium 所说的内容。
检查连接的安全选项可能也是值得的,默认情况下,ejabberd 将使用自签名证书,因此严格检查将失败。我还遇到了 ejabberd 的 pubsub 功能问题,导致 Adium 客户端出现问题,最终不得不禁用它。您可以通过注释掉 ( %%
)module
中 pubsub 的指令来执行此操作ejabberd.cfg
。