web-dev-qa-db-ja.com

WebブラウザーはMQTTを使用できますか?

構築中の新しいデバイスのメッセージングプロトコルとしてMQTTを使用することを検討しています。また、デバイスのWebインターフェイスも必要です。 MQTTと通信するブラウザクライアントアプリ(追加のプラグインなし)を実装できるかどうか、誰もが知っていますか?

32
fred basset

はい、Steve-oのコメントで述べたように、websocket経由のMQTTは非常に可能です。

現時点では2つのオプションがあります

  1. IBMのMQ 7.5にはwebsocketサポートが付属しています。詳細は こちら をご覧ください。
  2. Mosquittoブローカーには、 here を実行するサンプルを含むjavascriptクライアントがあります。

2番目の質問に答えるために、lighttpdにはwebsocketsモジュールがあり、詳細を使用して既存のブローカーへの転送を行うことができます here

転送を行うために独自のライブラリを作成する必要のないApacheについては何も見つかりませんでした。

15
hardillb

Hardillbsの答えを拡張するには:

現在、3番目のオプションがあります。

HiveMQ は、外部Webサーバーを必要とせずにネイティブWebソケットをサポートします。 Eclipse Paho のJavascriptクライアントと完全に連携します。

試してみたい場合は、パブリックの MQTTDashboard (フードの下でHiveMQを使用)がポート8000​​のWebソケットをサポートします。

開示:私はHiveMQの開発者の一人です

10

IBMは、WebSocketベースのJavaScriptクライアントをリリースしました。 Eclipse Pahoのオープンソースです。

Gitリポジトリ: http://git.Eclipse.org/c/paho/org.Eclipse.paho.mqtt.javascript.git/

チュートリアルはこちらです。 https://www.ibm.com/developerworks/community/blogs/c565c720-fe84-4f63-873f-607d87787327/entry/how_to_prog_javascript?lang=en

5
patrickwtl

[〜#〜] wss [〜#〜]WebSocket to TCP Gateway( for MQTT)。別のプロセスを実行することを意味しますが、Apacheの構成を変更する必要はありません。WSSはTLSもサポートしています。

3
jpmens

blog by jpmens は、websocket機能を使用してmosquittoをセットアップするための良い出発点です。彼は Pahoに基づくクライアントjavascriptコードはgithubにあります です。

この ブログ「WebサーバーとMQTT WebSocketsブローカーを同じporで実行する方法」 は、サーバー側の2つの方法を説明しています。

  • hTTP構成のmosquitto
  • Apache + mod_websocket_mosquitto
2
minghua

Apacheではありませんが、このガイドに従ってmod_websocketでlighttpdをインストールできます。

http://oriolrius.cat/blog/2013/09/25/server-send-Push-notifications-to-client-browser-without-polling/

しかし、使いやすさのために、@ Dominikが推奨しているように、HiveMQを強くお勧めします。

1
Matt.

このリンク( ダウンロードコード )は便利です。ダウンロードして、このファイル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));

0
rocksyne

なぜnodejs + socket.ioではありませんか?それらには、すべてのガジェットが含まれています(webscokets、pub/sub、webserver、mqtt broker ...)。 SocketCluster は別の良い出発点です。

0
giuseppe