2016-05-09 27 views
0

MosquittoブローカーがインストールされているRaspberry Piに接続しようとしています。 RPI上のクライアントを使用して接続されている:ラズベリーパイのWebソケット経由でMosquittoブローカーに接続するにはどうすればいいですか?

client.connect("127.0.0.1", 1883, 60) 

を私は次の仕様を使用して、私のMQTT JavaScriptクライアント上で、それに接続しようとしましたが、私は失敗しました:

client = new Paho.MQTT.Client("10.101.125.190", 1883,"myclientid_" + parseInt(Math.random() * 100, 10)); 

私も8080にポートを変更してみましたJavaScript側からは、私はまだ失敗しました。 RPi上のポートを8080に変更すると、接続されません。

これは私が現時点で取得していますエラーは次のとおりです。

WebSocket connection to 'ws://10.101.125.190:1883/mqtt' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET 

だから、私はこのエラーを修正するために変更する必要がありますか? RPiとJSクライアントは、どちらも同じローカルネットワークにあります。

編集: 私はすでにtest.mosquitto.org - 8080でこれを試してみましたが、それは働いたが、できるだけ早く私はアドレスを変更すると、私はエラーを取得を開始することを言及するのを忘れてしまいました。

答えて

1

MQTT over websocketsは、ネイティブMQTTと同じポートを共有しません。

あなたのモスキート設定に新しいリスナーを追加する必要があります。

あなた/etc/mosquitto/mosquitto.confの終わり(または/etc/mosquitto/mosquitto.dで別々のファイルに)すると

listener 1884 
protocol websockets 

に次のようなものを追加する必要がありますあなたのJavaScriptをポート1884に接続するように更新する必要はありません。1883

また、raspbian用にパッケージ化されているデフォルトバージョンが古すぎる1.4.x iircより新しいバージョンのモスキートを使用する必要があります。新しいバージョンを取得するには、hereの指示に従ってください。

+0

クライアントはRPiでどうですか。ポート1884を使用して接続していますか? –

+1

彼らはまだネイティブMQTTを話しているので1883を使用する必要があります – hardillb

+0

私はすべてのステップを完璧に実行することができましたが、明らかにWebSocket connection to ws://10.101.125.190: 1884/mqtt 'failed:接続確立エラー:net :: ERR_CONNECTION_REFUSED'。私は 'apt-get update 'の出力の最後に' etc:apt/sources.list.d/'というディレクトリに' N:Ignoring file' mosquitto-wheezy.list.l 'というディレクトリを持っています無効なファイル名のエイリアスです。これはエラーと関係がありますか? RPiを再起動する必要はありますか? –

関連する問題