消息收发为云消息队列 MQTT 版最基本的功能,云消息队列 MQTT 版支持终端和云端服务接入云消息队列 MQTT 版服务器,实现终端和终端、终端和云端的消息通信。本文介绍消息收发功能的基本场景和示例代码。

背景信息

云消息队列 MQTT 版消息收发场景中,消息发送端和消息接收端可分为终端设备和云端服务两种类型。终端设备和云端服务均需要通过云消息队列 MQTT 版的SDK接入云消息队列 MQTT 版服务端进行消息通信。

云消息队列 MQTT 版提供的SDK如下。
  • 终端SDK:MQTT的开源SDK,支持MQTT 3.1.1协议,适用于终端设备的开发。
  • 云端SDK:阿里云开发的SDK,适用于云上业务应用的开发。支持消息发送、消息订阅以及接收终端SDK上下线事件消息。

终端和终端消息收发

终端和终端消息收发

该场景下消息的发送端和消费端都分布在移动终端环境,通过MQTT协议连接到云消息队列 MQTT 版。发送端和消费端的终端设备均通过开源的终端SDK接入云消息队列 MQTT 版实现消息收发。

典型场景示例

  • 即时通信:例如,两个安装有聊天App的移动手机直接通过云消息队列 MQTT 版服务端收发聊天信息。
  • 智能设备管理:例如,通过安装在手机上的App向接入到云消息队列 MQTT 版服务端的共享充电宝下发指令,充电宝收到指令消息后自动弹出。

终端和云端消息收发

终端和云端消息收发

该场景下消息的发送端和消费端分别为移动终端设备和部署在阿里云上的业务应用。通过云消息队列 MQTT 版实现终端和云端的消息交互。终端设备通过终端SDK接入云消息队列 MQTT 版服务端,云端应用通过云端SDK接入云消息队列 MQTT 版服务端。

典型场景示例

  • 设备状态上报:消息发送端为终端设备,消费端为云端业务应用。例如,部署在终端环境的海量电子价签定时上报自己的显示状态和节点电量等,部署在云端的管控应用根据上报的数据分析当前在线的电子价签状态,并根据业务需要进行进一步的调整。
  • 系统消息推送:消息发送端为云端业务应用,消费端为终端设备。例如,部署在云端的某游戏应用发送一条停服更新的通告,云消息队列 MQTT 版服务端将该通告推送至所有下载该游戏的手机终端上,通过手机消息提示给所有游戏用户。
  • 消息接收:云端SDK的订阅模式支持集群消费,即不同的消费端获取不同的消息。

终端SDK示例代码

说明 针对不同的使用场景,本文提供的示例代码所覆盖的语言并不代表该场景下仅支持该语言,您可以参照Java的示例代码完成其余语言的参数填写。

消息收发

语言 下载地址
JavaScript mqtt.demo.javascript

客户端鉴权

终端设备接入云消息队列 MQTT 版服务端收发消息时,可以通过以下任意一种鉴权方式对客户端进行鉴权认证。更多鉴权信息,请参见鉴权概述

说明 如果您使用签名鉴权模式收发消息,User Name和Password的计算方法及验证方法请参见签名鉴权模式

云端SDK示例代码

说明 云端SDK暂时只支持Java和Go语言。