このトピックでは、ApsaraMQ for MQTT に慣れていないエンジニアのために、クラウド SDK デモを使用してクラウドで ApsaraMQ for MQTT のテストプロジェクトをゼロから開発する方法を示します。この例では、Java 言語を使用します。デモには、メッセージの送受信とクライアントステータス通知のサブスクライブのサンプルコードが含まれています。デモには、関連する構成も含まれています。
前提条件
- IntelliJ IDEA がインストールされていること。
IntelliJ IDEA Ultimate Edition が要件に従ってダウンロードおよびインストールされていることを確認してください。詳細については、ダウンロードアドレス にアクセスしてください。または、Eclipse をインストールすることもできます。この例では、IntelliJ IDEA をインストールします。
- JDK 1.8 以降がインストールされていること。詳細については、Java のダウンロード にアクセスしてください。
- リソースが作成されていること。
デモを使用してメッセージを送受信するには、インスタンス、トピック、グループ などのリソースを事前にコンソールで作成する必要があります。さらに、AccessKey ペアを取得 し、インスタンスのエンドポイントを取得 する必要があります。
デモを実行する
- デモパッケージをダウンロードして解凍します。デモをダウンロードするには、mqtt-server-sdk-demo にアクセスしてください。パッケージが解凍されると、mqtt-server-sdk-demo-main フォルダーが生成されます。メッセージの送受信とクライアントステータス通知のサブスクライブのサンプルコードは、java-demo\src\main\java\com\aliyun\openservices\lmq\example ディレクトリに保存されています。
MQTTProducerDemoクラス: バックエンドサービスアプリケーションが ApsaraMQ for MQTT ブローカーにメッセージを送信するために使用されます。MQTTConsumerDemoクラス: バックエンドサービスアプリケーションが ApsaraMQ for MQTT ブローカーからメッセージをサブスクライブするために使用されます。MQTTClientStatusNoticeProcessDemoクラス: バックエンドサービスアプリケーションがクライアントステータス通知をサブスクライブするために使用されます。
- 解凍したデモを IntelliJ IDEA にインポートします。
- ビジネス要件に基づいてサンプルコードを変更します。実際の resource 情報に基づいて、サンプルコードのパラメーターを設定する必要があります。
// Message Queue for MQTT インスタンスのエンドポイント。エンドポイントの形式については、「インターフェースとパラメーター」を参照してください。 String domain = "domain"; // クラウド SDK で使用されるポート。クラウド SDK で使用されるプロトコルとポートは一致している必要があります。値を 5672 に設定します。 int port = "port"; // 作成した Message Queue for MQTT インスタンスの ID。 String instanceId = "instanceId"; // Resource Access Management (RAM) ユーザーの AccessKey ID と AccessKey シークレット。 String accessKey = "accessKey"; String secretKey = "secretKey"; // メッセージの送受信のために作成した親トピック。 String firstTopic = "firstTopic"; // 使用するサブトピック。コンソールで事前に作成することなく、コードでサブトピックを指定できます。サブトピックの命名規則については、「用語」を参照してください。 String secondTopic = "secondTopic"; // メッセージの送受信のために作成したグループ ID。 String mqttGroupId = "mqttGroupId"; - 構成が完了したら、main() 関数を実行して変更したサンプルコードを実行します。
結果を確認する
デモを実行してメッセージを送受信した後、ApsaraMQ for MQTT コンソール でメッセージトレースをクエリして、メッセージング結果を確認できます。詳細については、「メッセージトレースをクエリする」をご参照ください。