MQTT over WebSockets" AMQJS0008I Socket closed" PhantomJS上的连接错误

时间:2014-08-17 10:33:01

标签: javascript phantomjs mqtt paho aerogear

JBoss AeroGear JavaScript notifier是一组适配器,它们提供统一/类似的API,用于与不同的消息传递服务和协议进行交互。

问题

我正在为JBoss AeroGear JS MQTT over WS adapter编写一些QUnit测试,这些测试依赖于Eclipse Paho MQTT JavaScript客户端。这些测试适用于Firefox / Chrome,但在PhantomJS 1.9.7上失败并出现AMQJS0008I Socket closed连接错误。

最初,我的测试是针对Apache Active MQ代理版本5.9.0运行的,它支持基于WebSockets的MQTT开箱即用。我还修改了它们,以便在WebSockets沙箱环境ws://iot.eclipse.org/ws上使用Eclipse Paho MQTT,但问题仍然存在。

如何重现?

克隆我的GitHub存储库https://github.com/tolis-e/aerogear-js-integration。检查stackoverflow分支,执行npm install,然后grunt integration-iot --debug。为了验证测试是否适用于Firefox / Chrome,请在浏览器中打开tests/notifier/mqttws.html。 QUnit测试位于mqttws.js文件内。正如您在下面的日志中看到的那样,我收到AMQJS0008I Socket closed错误。

有关错误原因的任何想法?我的感觉是这个问题与PhantomJS 1.9.7不支持Web套接字RFC 6455这一事实有关。看起来PhantomJS 2.x支持RFC 6455

日志

[D] ["phantomjs","qunit.begin"]
[D] ["phantomjs","onLoadFinished","success"]
[D] ["phantomjs","qunit.moduleStart","Connect / Disconnect"]
[D] ["phantomjs","qunit.testStart","Connect to and Disconnect from MQTT Server"]
[D] ["phantomjs","console","Unexpected response code: 404"]
Unexpected response code: 404
[D] ["phantomjs","console","Connection error: AMQJS0008I Socket closed."]
Connection error: AMQJS0008I Socket closed.
[D] ["phantomjs","fail.timeout"]

0 个答案:

没有答案