私はこれらのプロトコルに不慣れで、Apache Apollo や RabbitMQ などのメッセージ ブローカーの調査を始めたばかりです。したがって、ブローカーはパブリッシャーから MQTT メッセージを受け取ります。そして、それをAMQP(できれば)またはSTOMPプロトコルに変換してWebサーバーに送信したいと思います。しかし、私はこれまでそうすることができませんでした。RabbitMQ を調べて、MQTT プラグインを有効にしようとしましたが、ロードしてもサーバーを起動できません。誰かが私をここに導くことができるかどうか疑問に思っていましたか? 役立つ API はありますか? そして、私はRabbitMQについて非常に混乱しています。ストンプ、管理ユーティリティなど、他のプラグインを簡単にロードできました。
2 に答える
私はそれが実行可能であると100%確信しています。私はrobomq.ioブローカーで今それをやっています。原因の 1 つは、クライアント ライブラリのバグによって、その操作が制限される場合があることです。
もう 1 つ知っておくべきことは、RabbitMQ MQTT アダプターは内部的にamq.topic
デフォルトで exchange にマップされているため、STOMP ピアでは、サブスクライブまたは送信する必要があること/topic/yourTopic
です。AMQP ピアで、キューをamq.topic
交換にバインドするか、その交換に発行します。
このサンプル コードとドキュメントに従って、クライアントを構築します。
サーバーがわからない場合は、robomq.io から無料トライアルを入手してください。時間とお金を節約できます。
私が使用している開発ツールは、robomq.io ブローカー、Python のプロデューサー (AMQP ライブラリ: pika、MQTT ライブラリ: paho、STOMP ライブラリ: stompest)、Node.js のコンシューマー (ライブラリ: amqplib) です。
それが役に立てば幸い!
うーん、この質問を削除する必要があるかどうかはわかりません。しかし、そうしなければならない場合は、モデレーターと stackOverflow コミュニティ全般の裁量に任せます。ところで、私はUbuntu 14.04を使用しています。
RabbitMQ ブローカーについて
そのため、 Mosquittoは通常 MQTT に使用されるポート 1883 を占有するバックグラウンドで実行されていました。RabbitMQ のポートを変更することもできましたが、変更せずに Mosquitto プロセスを強制終了しようとしました。しかし、何らかの理由で、できませんでした。今のところ、私の簡単な修正は Mosquitto を完全に削除することでした。これによりポートが解放され、RabbitMQ が使用できるようになりました。
プロトコルについて
Pahoと提供されているRabbitMQライブラリを使用して、RabbitMQ ブローカーを介して AMQP/MQTT でメッセージを発行および受信できる単純なプログラムをコーディングしました。(私のグーグルはもっと良くなる必要があります!)まだ一方を他方に変換していません。しかし、それは達成するための大きな一歩であってはなりません。 非常に簡単な方法で変換を行うのに役立つ API または何かがあるかどうかを知っておくとよいでしょう。もちろん、ない場合は、できるだけ早く把握します
提案やコメントは大歓迎です。私はこれらすべてにまったく慣れていないので、ベテランのプロからのアドバイスを本当に活用できます:)