全部产品
Search
文档中心

云消息队列 MQTT 版:云端Demo工程

更新时间:Oct 09, 2023

针对初次接触云消息队列 MQTT 版的工程师,本文以Java语言为例,提供操作示例帮助您从零开始搭建云消息队列 MQTT 版的云端测试工程。Demo工程包含发送消息、接收消息以及接收客户端上下线消息的示例代码及相关配置。

前提条件

  • 安装IDEA。

    请下载IntelliJ IDEA Ultimate版本,并参见IntelliJ IDEA说明进行安装。更多信息,请参见下载地址。您也可以使用Eclipse,本文以IntelliJ IDEA为例。

  • 安装JDK 1.8或以上版本。更多信息,请参见安装JDK

  • 创建资源。

    使用Demo工程收发消息,需要提前在控制台创建资源信息,包括创建实例创建Topic创建Group获取AccessKey(包括AccessKey ID和AccessKey Secret)以及获取接入点

运行Demo工程

  1. 下载并解压Demo工程。

    下载地址,请参见Demo工程。解压后可看到本地新增了mqtt-server-sdk-demo-main文件夹,java-demo\src\main\java\com\aliyun\openservices\lmq\example路径下包含了消息收发的示例代码。

    • MQTTProducerDemo类:云端服务向云消息队列 MQTT 版服务端发送消息。

    • MQTTConsumerDemo类:云端服务从云消息队列 MQTT 版服务端接收消息。

    • MQTTClientStatusNoticeProcessDemo类:云端服务接收客户端上下线通知消息。

  2. 将解压好的Demo工程导入至IntelliJ IDEA。

  3. 修改示例代码,根据业务场景修改需要使用的示例代码,将创建好的资源信息填写至示例代码中。

    说明

    在使用示例代码前,需要配置环境变量,通过环境变量读取访问凭证。关于配置环境变量的方法,请参见配置访问凭证

    云消息队列 MQTT 版的AccessKey ID和AccessKey Secret的环境变量名称分别为MQTT_AK_ENVMQTT_SK_ENV

    // 云消息队列 MQTT 版实例的接入点,具体填写格式,请参见接口和参数说明。
    String domain = "domain";
    // 使用的协议和端口必须匹配,该参数值固定为5672。
    int port = "port";
    // 已创建好的云消息队列 MQTT 版实例ID。
    String instanceId = "instanceId";
    // 您的RAM用户的AccessKey ID和AccessKey Secret。
    // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
    // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
    // 本示例以将AccessKey 和 AccessKeySecret 保存在环境变量为例说明。
    String accessKey = System.getenv("MQTT_AK_ENV");
    String secretKey = System.getenv("MQTT_SK_ENV");
    // 您已创建好的用于收发消息的父级Topic。
    String firstTopic = "firstTopic";
    // 若您需要使用子级Topic,可直接在代码中设置,无需提前在控制台创建。子级Topic命名规范,请参见名词解释。
    String secondTopic = "secondTopic";
    // 您已创建好的用于收发消息的Group ID。
    String mqttGroupId = "mqttGroupId";
  4. 配置完成后,以Main方式运行步骤2中修改好的示例代码。

结果验证

运行Demo工程完成消息收发后,您可在云消息队列 MQTT 版控制台查询消息轨迹,验证消息收发结果。详细信息,请参见消息轨迹查询