ApsaraMQ for MQTT は、メッセージの送受信を可能にするメッセージング機能を提供します。デバイスまたはクラウドサービスを ApsaraMQ for MQTT ブローカーに接続できます。このようにして、ApsaraMQ for MQTT を使用して、デバイス間、またはデバイスとクラウド間でメッセージを送受信できます。このトピックでは、メッセージングのシナリオについて説明し、メッセージを送受信する方法を示すサンプルコードを提供します。
背景
ApsaraMQ for MQTT を使用するメッセージングシナリオでは、デバイスとクラウドサービスの両方をメッセージプロデューサーまたはコンシューマーとして使用できます。デバイスを使用している場合でもクラウドサービスを使用している場合でも、ApsaraMQ for MQTT の SDK を使用して ApsaraMQ for MQTT ブローカーに接続し、メッセージを送受信する必要があります。
ApsaraMQ for MQTT は、次の SDK を提供します。
クライアント SDK: Message Queue Telemetry Transport (MQTT) のオープンソース SDK です。クライアント SDK は MQTT 3.1.1 プロトコルをサポートしており、デバイスでの使用に適しています。
クラウド SDK: Alibaba Cloud によって開発された SDK です。クラウド SDK は、クラウドサービスでの使用に適しています。クラウド SDK を使用すると、メッセージを送受信したり、クライアント SDK から送信されたステータス通知を受信したりできます。
デバイス間のメッセージング
このシナリオでは、メッセージプロデューサーとコンシューマーは、MQTT プロトコルを介して ApsaraMQ for MQTT に接続されているモバイルデバイス上で実行されます。デバイスは、クライアント SDK を使用して ApsaraMQ for MQTT に接続されます。
一般的なシナリオ
インスタントメッセージング: たとえば、チャットアプリがインストールされている 2 台の携帯電話が ApsaraMQ for MQTT ブローカーに接続され、互いにメッセージを送受信します。
スマートデバイス管理: たとえば、携帯電話のアプリが、ApsaraMQ for MQTT ブローカーに接続されている共有パワーバンクに排出コマンドを送信します。共有パワーバンクはコマンドを受信し、自動的に排出されます。
デバイスとクラウド間のメッセージング
このシナリオでは、メッセージプロデューサーはモバイルデバイスにデプロイされ、メッセージコンシューマーは Alibaba Cloud にデプロイされます。デバイスとクラウドは、ApsaraMQ for MQTT を使用して相互に通信します。デバイスはクライアント SDK を使用して ApsaraMQ for MQTT ブローカーに接続し、クラウドアプリケーションはクラウド SDK を使用して ApsaraMQ for MQTT ブローカーに接続します。
一般的なシナリオ
デバイスステータスレポート: このシナリオでは、メッセージはデバイスによって送信され、クラウドアプリケーションによって消費されます。たとえば、デバイスにデプロイされている多数のデジタルプライスタグは、表示ステータスと電力消費量をクラウドの管理アプリケーションに定期的に報告します。クラウドアプリケーションは、報告されたデータに基づいてデジタルプライスタグのステータスを分析し、それに応じてリソースを調整します。
システムメッセージプッシュ: このシナリオでは、メッセージはクラウドアプリケーションによって送信され、デバイスによって消費されます。たとえば、クラウド内のゲームアプリケーションは、更新のためにサービスが一時停止されることをプレイヤーに通知するアナウンスを送信します。 ApsaraMQ for MQTT ブローカーは、ゲームがインストールされているすべての携帯電話にメッセージを送信することにより、アナウンスをプレイヤーにプッシュします。
メッセージサブスクリプション: クラウド SDK は、異なるコンシューマークライアントグループがクラウドアプリケーションからの異なるメッセージをサブスクライブできるクラスタ消費モードをサポートしています。
クライアント SDK のサンプルコード
次のサンプルコードは、クライアント SDK を使用してメッセージを送受信する方法の例を示しています。サンプルコードで使用されている Java プログラミング言語は、このシナリオでサポートされている唯一のプログラミング言語ではありません。 Java のサンプルコードを参照して、さまざまなプログラミング言語のパラメーター設定を変更できます。
メッセージの送受信
クライアント認証
デバイスが ApsaraMQ for MQTT ブローカーに接続してメッセージを送受信する場合、次のいずれかの方法を使用してクライアントを認証できます。詳細については、「認証の概要」をご参照ください。
クラウド SDK のサンプルコード
クラウド SDK は、Java と Go のみサポートしています。