私はAngularJSアプリケーションを構築しており、Paho JavaScriptクライアントを使用してWebソケット経由でMQTTブローカー(test.mosquitto.org)に接続しています。これはうまく動作します。私はMQTTブローカーにダイレクトMQTTを介して接続したいと思っていました。(Webソケットを有効にしていないブローカーをサポートするために)WebSocketを使用しないMQTTのJavaScriptクライアント
Pahoクライアントは直接MQTTをサポートしていないので、mqtt.js(browserMqtt.js)のブラウザー化バージョンを試しました。
//var options = { host: "test.mosquitto.org", port: 8080 }; //works!
var options = { host: "test.mosquitto.org", port: 1883 }; //does not work!
var client = mqtt.connect(options);
繰り返しますが、これはWebSocketを(ポート8080)上で動作しますが、私は直接MQTT(ポート1883)経由で接続しようとすると、私はエラーメッセージメッセージが表示されます:ここで
は私のコードからの主なラインですコンソールでbrowserMqtt.jsから、ではないと私のエラーハンドラが発射されていませんから。
WebSocket connection to 'ws://test.mosquitto.org:1883/' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET
私のアプリはChromeブラウザ上で実行されています。
これはコードの問題か設計上の問題ですか? MQTTを使用してブラウザーからブローカーに接続することができない何らかの理由で、ライブラリーがWebSocket呼び出しを強制していますか?
私は数日かけて読んだことのあるメッセージから混合メッセージを受け取りますが、解決策として使用できる明確な例はありません。