すべてのプロダクト
Search
ドキュメントセンター

ApsaraMQ for MQTT:メッセージの送受信

最終更新日:Mar 26, 2025

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 から送信されたステータス通知を受信したりできます。

デバイス間のメッセージング

Messaging between devices

このシナリオでは、メッセージプロデューサーとコンシューマーは、MQTT プロトコルを介して ApsaraMQ for MQTT に接続されているモバイルデバイス上で実行されます。デバイスは、クライアント SDK を使用して ApsaraMQ for MQTT に接続されます。

一般的なシナリオ

  • インスタントメッセージング: たとえば、チャットアプリがインストールされている 2 台の携帯電話が ApsaraMQ for MQTT ブローカーに接続され、互いにメッセージを送受信します。

  • スマートデバイス管理: たとえば、携帯電話のアプリが、ApsaraMQ for MQTT ブローカーに接続されている共有パワーバンクに排出コマンドを送信します。共有パワーバンクはコマンドを受信し、自動的に排出されます。

デバイスとクラウド間のメッセージング

Messaging between devices and the cloud

このシナリオでは、メッセージプロデューサーはモバイルデバイスにデプロイされ、メッセージコンシューマーは Alibaba Cloud にデプロイされます。デバイスとクラウドは、ApsaraMQ for MQTT を使用して相互に通信します。デバイスはクライアント SDK を使用して ApsaraMQ for MQTT ブローカーに接続し、クラウドアプリケーションはクラウド SDK を使用して ApsaraMQ for MQTT ブローカーに接続します。

一般的なシナリオ

  • デバイスステータスレポート: このシナリオでは、メッセージはデバイスによって送信され、クラウドアプリケーションによって消費されます。たとえば、デバイスにデプロイされている多数のデジタルプライスタグは、表示ステータスと電力消費量をクラウドの管理アプリケーションに定期的に報告します。クラウドアプリケーションは、報告されたデータに基づいてデジタルプライスタグのステータスを分析し、それに応じてリソースを調整します。

  • システムメッセージプッシュ: このシナリオでは、メッセージはクラウドアプリケーションによって送信され、デバイスによって消費されます。たとえば、クラウド内のゲームアプリケーションは、更新のためにサービスが一時停止されることをプレイヤーに通知するアナウンスを送信します。 ApsaraMQ for MQTT ブローカーは、ゲームがインストールされているすべての携帯電話にメッセージを送信することにより、アナウンスをプレイヤーにプッシュします。

  • メッセージサブスクリプション: クラウド SDK は、異なるコンシューマークライアントグループがクラウドアプリケーションからの異なるメッセージをサブスクライブできるクラスタ消費モードをサポートしています。

クライアント SDK のサンプルコード

説明

次のサンプルコードは、クライアント SDK を使用してメッセージを送受信する方法の例を示しています。サンプルコードで使用されている Java プログラミング言語は、このシナリオでサポートされている唯一のプログラミング言語ではありません。 Java のサンプルコードを参照して、さまざまなプログラミング言語のパラメーター設定を変更できます。

メッセージの送受信

クライアント SDK を使用してメッセージを送受信する例

プログラミング言語

ダウンロードリンク

Java

mqtt.demo.java

C

mqtt.demo.c

Python

mqtt.demo.python

.NET

mqtt.demo.net

JavaScript

mqtt.demo.javascript

iOS

mqtt.demo.ios

PHP

mqtt.demo.php

WebSocket を使用して Web アプリケーションメッセージを送受信する例

プログラミング言語

ダウンロードリンク

JavaScript

mqtt.demo.javascript

クライアント認証

デバイスが ApsaraMQ for MQTT ブローカーに接続してメッセージを送受信する場合、次のいずれかの方法を使用してクライアントを認証できます。詳細については、「認証の概要」をご参照ください。

ApsaraMQ for MQTT の署名認証を使用する例

説明

署名認証方式を使用してメッセージを送受信する場合は、Username パラメーターと Password パラメーターを設定する必要があります。署名を検証するためにこれらのパラメーターの値を取得する方法については、「署名認証」をご参照ください。

プログラミング言語

ダウンロードリンク

Java

mqtt.signature.mode.demo.java

C

mqtt.signature.mode.demo.c

Python

mqtt.signature.mode.demo.python

.NET

mqtt.signature.mode.demo.net

JavaScript

mqtt.signature.mode.demo.javascript

iOS

mqtt.signature.mode.demo.ios

PHP

mqtt.signature.mode.demo.php

ApsaraMQ for MQTT のトークンベース認証を使用する例

プログラミング言語

ダウンロードリンク

Java

mqtt.token.mode.demo.java

PHP

mqtt.token.mode.demo.php

ApsaraMQ for MQTT の SSL 暗号化を使用する例

プログラミング言語

ダウンロードリンク

Java

mqtt.ssl.demo.java

C

mqtt.ssl.demo.c

Python

mqtt.ssl.mode.demo.python

.NET

mqtt.ssl.mode.demo.net

JavaScript

mqtt.ssl.demo.javascript

iOS

mqtt.ssl.demo.ios

クラウド SDK のサンプルコード

説明

クラウド SDK は、Java と Go のみサポートしています。

クラウド SDK を使用してメッセージを送受信する例

プログラミング言語

ダウンロードリンク

Java

MQTTConsumerDemo.java

MQTTProducerDemo.java

Go

example.go