0

我正在尝试在我的网站上设置一个 xmpp 客户端,以便熟悉我遵循本书的示例。我通过复制代码实现了示例 3。我唯一改变的是“http://localhost:5280/http-bind/”的连接地址和脚本路径。当我指向 localhost/hello.html 它按预期加载。当我输入凭据并按下连接时,什么都没有发生?这会是js的错误吗?

代码与此处的第 3 章相同

编辑:连接按钮的问题是 strophe 和 flxhr js 没有正确加载。所以现在连接按钮工作并调用绑定的连接函数以及关闭对话框。但是,连接和断开连接的函数没有被调用,所以在我按下连接后没有任何反应。什么会导致这种情况?

4

2 回答 2

2

调试 Strophe.js 问题的最佳方法是观察线路流量。您可以通过两种不同的方式执行此操作。

1) 打开 Firebug 的网络面板或在 Chrome 或 Safari 的开发者工具中。您可以在那里看到 Strophe 的所有帖子和回复。在这种情况下,您将希望看到其中的一些包含初始 XMPP 设置和身份验证。如果它根本无法连接,您通常只会看到一个出现错误的 POST。如果是这种情况,请发布错误,也许我可以诊断它。

2) 为 Strophe 定义一个日志记录函数并让它打印出它正在发生的事情。如果您正在建立 BOSH 会话但遇到问题,这很有效。去做这个:

connection.rawInput = function (data) { console.log(" IN: " + data); };
connection.rawOuput = function (data) { console.log("OUT: " + data); };

您也可以让它附加到 DOM 中,而不是使用 console.log 来写入 JavaScript 控制台。

有关更多调试相关信息,您可以执行以下操作:

Strophe.log = function (lvl, msg) { console.log("LOG: " + msg); };

我相信第 4 章涵盖了其中一些技术。

于 2012-04-16T21:24:04.793 回答
0

我尝试了那个例子,它对我有用。所以如果你没有更改js代码,问题一定来自ejabberd服务器设置。主要是您在 ejabberd.cfg 中设置的主机名。我会尝试几件事:

  1. 在 ejabberd.cfg 文件中,确保 localhost 在这一行:

    {主机,[“本地主机”]}。

  2. 如果主机名没问题,将您的 ejabberd 日志级别提高到 5 并重新启动 ejabberd。在此处发布 ejabberd 错误消息,我们可以一起解决。

于 2012-05-13T13:05:22.567 回答