针对初次接触云消息队列 MQTT 版的工程师,本文以Java语言为例,提供操作示例帮助您从零开始搭建云消息队列 MQTT 版的云端测试工程。Demo工程包含发送消息、接收消息以及接收客户端上下线消息的示例代码及相关配置。
前提条件
运行Demo工程
下载并解压Demo工程。
下载地址,请参见Demo工程。解压后可看到本地新增了mqtt-server-sdk-demo-main文件夹,java-demo\src\main\java\com\aliyun\openservices\lmq\example路径下包含了消息收发的示例代码。
MQTTProducerDemo
类:云端服务向云消息队列 MQTT 版服务端发送消息。MQTTConsumerDemo
类:云端服务从云消息队列 MQTT 版服务端接收消息。MQTTClientStatusNoticeProcessDemo
类:云端服务接收客户端上下线通知消息。
将解压好的Demo工程导入至IntelliJ IDEA。
修改示例代码,根据业务场景修改需要使用的示例代码,将创建好的资源信息填写至示例代码中。
说明在使用示例代码前,需要配置环境变量,通过环境变量读取访问凭证。关于配置环境变量的方法,请参见配置访问凭证。
云消息队列 MQTT 版的AccessKey ID和AccessKey Secret的环境变量名称分别为MQTT_AK_ENV和MQTT_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";
配置完成后,以Main方式运行步骤2中修改好的示例代码。
结果验证
运行Demo工程完成消息收发后,您可在云消息队列 MQTT 版控制台查询消息轨迹,验证消息收发结果。详细信息,请参见消息轨迹查询。