Apo*_*dis 9 javascript mqtt phantomjs paho aerogear
在JBoss的AeroGear JavaScript的通知是针对不同的信息服务和协议交互提供了统一的/类似的API适配器的集合.
问题
我正在通过WS适配器为JBoss AeroGear JS MQTT编写一些QUnit测试,这依赖于Eclipse Paho MQTT JavaScript客户端.测试适用于Firefox/Chrome但在PhantomJS 1.9.7上出现AMQJS0008I Socket closed连接错误.
最初,我的测试是针对Apache Active MQ代理版本5.9.0运行的,它支持开箱即用的WebTockets上的MQTT.我还修改了它们以在WebSockets沙箱环境中使用Eclipse Paho MQTT,ws://iot.eclipse.org/ws但问题仍然存在.
如何重现?
克隆我的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"]
Run Code Online (Sandbox Code Playgroud)