構築中の新しいデバイスのメッセージング プロトコルとして MQTT を使用することを検討しています。また、デバイス用の Web インターフェイスも必要です。MQTT を使用するブラウザー クライアント アプリを (追加のプラグインなしで) 実装できるかどうか知っている人はいますか?
8 に答える
はい、Steve-o のコメントで述べたように、websockets 経由の MQTT は非常に可能です。
現時点では2つのオプションがあります
- IBM の MQ 7.5 には websockets のサポートが付属しています。詳細については、こちらを参照してください。
- Mosquitto ブローカーには、ここで実行されている例を含む JavaScript クライアントがあります。
2 番目の質問に答えるために、lighttpd には、既存のブローカーへの転送に使用できる websockets モジュールがあります。詳細については、こちらを参照してください。
転送を行うために独自のライブラリを作成する必要のない Apache 用のものを見つけることができませんでした。
hardillbs の回答を拡張するには:
現在、3 番目のオプションがあります。
HiveMQは、外部 Web サーバーを必要とせずにネイティブ WebSocket をサポートします。Eclipse Pahoの Javascript クライアントと完全に連携します。
試してみたい場合は、パブリックMQTTDashboard (内部で HiveMQ を使用) がポート 8000 で Websocket をサポートしています。
開示: 私は HiveMQ の開発者の 1 人です。
IBM は、WebSocket ベースの JavaScript クライアントをリリースしました。Eclipse Paho のオープンソースです。
Git リポジトリ: http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.javascript.git/
Apache ではありませんが、このガイドに従って mod_websocket で lighttpd をインストールできます。
しかし、@Dominikが推奨するように、使いやすさのためにHiveMQを強くお勧めします。
jpmensによるブログは、websocket 機能を使用して mosquitto をセットアップするための良い出発点です。Paho に基づく彼のクライアント JavaScript コードは github にあります。
このブログ「Web サーバーと MQTT WebSockets ブローカーを同じポートで実行する方法」では、サーバー側の 2 つの方法について説明しています。
- http構成のmosquitto
- Apache + mod_websocket_mosquitto
nodejs
+ではないのはなぜsocket.io
ですか?すべてのガジェットが含まれています (webscokets、pub/sub、webserver、mqtt ブローカーなど)。
SocketClusterは、もう 1 つの良い出発点です。
このリンク (ダウンロード コード) は役に立ちます。ダウンロードして、このファイル mosq-mqttws31.html を変更します。埋め込まれた Java スクリプト ライブラリの代わりに、この cdn を使用します。
https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js
クライアントのインスタンス化は client = new Paho.MQTT.Client("test.mosquitto.org", 8080,"myclien256tiddd_" + parseInt(Math.random() * 100, 10));