Demo工程

更新时间:

本文介绍云消息队列 MQTT 版的Demo工程,包含各种应用场景的使用指导,请参见程序源码的文档注释进行理解。

获取多语言Demo

示例代码全集请参见mqtt-demo

下载完成后解压即可看到本地新增了mqtt-demo-main文件夹。其中一级文件夹是按照开发语言进行分类,请按照实际需求进行调试。

Java

场景

下载地址

单独使用MQTT消息收发示例

mqtt.demo.java

MQTT签名示例

mqtt.signature.mode.demo.java

MQTT Token示例

mqtt.token.mode.demo.java

MQTT SSL加密示例

mqtt.ssl.demo.java

MQTT发送消息RocketMQ订阅消息示例

mqtt.to.rocketmq.demo.java

RocketMQ发送消息MQTT订阅消息示例

rocketmq.to.mqtt.demo.java

MQTT发送顺序消息RocketMQ订阅顺序消息示例

mqtt.ordered.msg.demo.java

MQTT客户端异步上下线通知示例

mqtt.client.status.notice.demo.java

MQTT SSL双向认证示例

mqtt.bissl.demo.java

Python

场景

下载地址

单独使用MQTT消息收发示例

mqtt.demo.python

MQTT签名示例

mqtt.signature.mode.demo.python

MQTT SSL加密示例

mqtt.ssl.mode.demo.python

PHP

场景

下载地址

单独使用MQTT消息收发示例

mqtt.demo.php

MQTT签名示例

mqtt.signature.mode.demo.php

MQTT Token示例

mqtt.token.mode.demo.php

MQTT发送顺序消息RocketMQ订阅顺序消息示例

mqtt.ordered.msg.demo.php

C

场景

下载地址

单独使用MQTT消息收发示例

mqtt.demo.c

MQTT签名示例

mqtt.signature.mode.demo.c

MQTT SSL加密示例

mqtt.ssl.demo.c

说明

更多C语言依赖库,请参见eclipse/paho.mqtt.c

.NET

场景

下载地址

单独使用MQTT消息收发示例

mqtt.demo.net

MQTT签名示例

mqtt.signature.mode.demo.net

MQTT SSL加密示例

mqtt.ssl.mode.demo.net

JavaScript

场景

下载地址

单独使用MQTT消息收发示例

mqtt.demo.javascript

MQTT签名示例

mqtt.signature.mode.demo.javascript

MQTT SSL加密示例

mqtt.ssl.demo.javascript

WebSocket消息收发示例

mqtt.websocket.demo.javascript

iOS

场景

下载地址

单独使用MQTT消息收发示例

mqtt.demo.ios

MQTT签名示例

mqtt.signature.mode.demo.ios

MQTT SSL加密示例

mqtt.ssl.demo.ios

Demo使用须知

如果搭配使用云消息队列 MQTT 版和其他后端消息存储产品,如云消息队列 RocketMQ 版,您需理解消息结构和属性映射关系,详细信息,请参见MQTT与RocketMQ的消息结构映射

说明

各种开发语言的Demo程序完整程度可能不一致,后续会陆续更新。如果有特性暂未有Demo,请参见Java的示例下载相应语言的SDK后自行测试。

配置访问凭证

在使用示例代码前,需要配置环境变量MQTT_AK_ENVMQTT_SK_ENV。配置方法如下:

重要

阿里云账号AccessKey拥有所有API的访问权限,若泄露会威胁到该账号下所有资源的安全。为保证账号安全,强烈建议您使用RAM用户的AccessKey进行API访问或日常运维。获取方式,请参见创建AccessKey

Linux和macOS系统配置方法

  1. 创建.bash_profile文件

    说明

    如果是第一次设置环境变量,可以使用touch ~/.bash_profile创建一个配置文件,如果已经存在配置文件,则使用vim ~/.bash_profile命令直接编辑文件。

    touch ~/.bash_profile
    vim ~/.bash_profile
  2. 配置.bash_profile文件

    # 将以下命令中的<ACCESS_KEY_ID>和<ACCESS_KEY_SECRET>替换为您自己的AccessKey ID和AccessKey Secret。
    export MQTT_AK_ENV=<ACCESS_KEY_ID>
    export MQTT_SK_ENV=<ACCESS_KEY_SECRET>

    编辑完成后保存退出。

  3. 使用.bash_profile文件

    # 使配置文件生效
    source ~/.bash_profile
    # 显示配置是否生效
    echo $MQTT_AK_ENV

    若返回正确的AccessKey,则说明配置成功。

重要

环境变量配置完成之后,为确保新的设置被正确应用,您可能需要重启相关的开发工具(IDE等)或服务。

Windows系统配置方法

通过图形用户界面GUI

  • 操作步骤

    以下为Windows 10中通过图形用户界面设置环境变量的步骤。

    在桌面右键单击此电脑,选择属性>高级系统设置>环境变量>系统变量/用户变量>新建,完成以下配置:

    变量

    示例值

    AccessKey ID

    • 变量名:MQTT_AK_ENV

    • 变量值:LTAI4GDty8ab9W4Y1D****

    AccessKey Secret

    • 变量名:MQTT_SK_ENV

    • 变量值:IrVTNZNy5yQelTETg0cZML3TQn****

  • 测试设置是否成功

    单击开始(或快捷键:Win+R)> 运行(输入 cmd)> 确定(或按 Enter 键),打开命令提示符,执行echo %MQTT_AK_ENV%echo %MQTT_SK_ENV%命令。若返回正确的AccessKey,则说明配置成功。

通过命令行提示符CMD

  • 操作步骤

    以管理员身份打开命令提示符,并使用以下命令在系统中新增环境变量。

    setx MQTT_AK_ENV LTAI4GDty8ab9W4Y1D**** /M
    setx MQTT_SK_ENV IrVTNZNy5yQelTETg0cZML3TQn**** /M

    其中/M表示系统级环境变量,设置用户级环境变量时可以不携带该参数。

  • 测试设置是否成功

    单击开始(或快捷键:Win+R)> 运行(输入 cmd)> 确定(或按 Enter 键),打开命令提示符,执行echo %MQTT_AK_ENV%echo %MQTT_SK_ENV%命令。若返回正确的AccessKey,则说明配置成功。

通过Windows PowerShell

在PowerShell中,设置新的环境变量(对所有新会话都有效):

[System.Environment]::SetEnvironmentVariable('MQTT_AK_ENV', 'LTAI4GDty8ab9W4Y1D****', [System.EnvironmentVariableTarget]::User)
[System.Environment]::SetEnvironmentVariable('MQTT_SK_ENV', 'IrVTNZNy5yQelTETg0cZML3TQn****', [System.EnvironmentVariableTarget]::User)

为所有用户设置环境变量(需要管理员权限):

[System.Environment]::SetEnvironmentVariable('MQTT_AK_ENV', 'LTAI4GDty8ab9W4Y1D****', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('MQTT_SK_ENV', 'IrVTNZNy5yQelTETg0cZML3TQn****', [System.EnvironmentVariableTarget]::Machine)

设置临时的环境变量(仅当前会话有效):

$env:MQTT_AK_ENV = "LTAI4GDty8ab9W4Y1D****"
$env:MQTT_SK_ENV = "IrVTNZNy5yQelTETg0cZML3TQn****"

在PowerShell中,执行Get-ChildItem env:MQTT_AK_ENVGet-ChildItem env:MQTT_SK_ENV命令。若返回正确的AccessKey,则说明配置成功。

重要

环境变量配置完成之后,为确保新的设置被正确应用,您可能需要重启相关的开发工具(IDE等)或服务。

更多信息

示例代码仅供参考使用,获取相应语言SDK请参见SDK下载