JBoss AeroGear JavaScript 通知機能は、さまざまなメッセージング サービスおよびプロトコルと対話するための統合/類似 API を提供するアダプターのコレクションです。
問題
Eclipse Paho MQTT JavaScript クライアントに依存するJBoss AeroGear JS MQTT over WS アダプターの QUnit テストをいくつか書いています。テストは Firefox/Chrome では機能しますが、PhantomJS 1.9.7 ではAMQJS0008I Socket closed
接続エラーで失敗します。
当初、私のテストは Apache Active MQ ブローカー バージョン 5.9.0 に対して実行されていました。このバージョンは、すぐに WebSocket 経由で 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 Sockets RFC 6455 をサポートしていないことに関連していると私は考えています。RFC 6455 は PhantomJS 2.x でサポートされるようです。
ログ
[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"]