本文介绍云消息队列 MQTT 版云端Java SDK提供的接口和相关的参数说明。

使用说明

  • 公共参数和网络参数可在ChannelConfig.class中设置。ChannelConfig.class路径为server-sdk-{SDK Version}\com\alibaba\mqtt\server\config,其中{SDK Version}为云端SDK的版本号。SDK下载,请参见版本说明
  • 一般情况下网络参数使用默认值,不需要自定义设置。若您需要修改参数值,请根据网络状态合理设置。

公共参数

参数说明
domain云消息队列 MQTT 版实例的接入点。客户端通过接入点连接云消息队列 MQTT 版服务端。

使用云端SDK接入云消息队列 MQTT 版时,需要填写的接入点格式如下:

重要 仅实例内核版本为V3.3.0且实例地域属于中国内地的实例支持云端SDK接入。
  • 公网接入点MQTT实例ID-server-internet.mqtt.aliyuncs.com
  • VPC 接入点MQTT实例ID-server-internal.mqtt.aliyuncs.com

MQTT实例ID可在云消息队列 MQTT 版控制台实例详情页面的基础信息区域查看。

port协议端口。端口和使用的协议必须匹配,云端SDK中,该参数值固定为5672。
instanceId您在云消息队列 MQTT 版控制台创建的实例的ID。可在云消息队列 MQTT 版控制台实例详情页面查看。
accessKey您在阿里云账号管理控制台中创建的AccessKey ID,用于身份认证。获取方式,请参见获取AccessKey
secretKey您在阿里云账号管理控制台中创建的AccessKey Secret,用于身份认证。获取方式,请参见获取AccessKey。仅在Signature鉴权模式下需要设置。

网络参数

参数说明
networkRecoveryIntervalTCP连接自动恢复的时间间隔,默认值:5000 ms。
connectionTimeoutTCP请求连接超时时间。默认值:60000 ms。

若TCP请求超过该参数设置的参数值,客户端会返回失败响应。

handshakeTimeoutTCP连接握手超时时间,默认值:10000 ms。

若连接握手时间超过该参数设置的参数值,客户端会返回失败响应。

requestedHeartbeat心跳间隔时间,默认值:60 s。

若心跳间隔超过该参数设置的参数值,客户端会返回失败响应。

shutdownTimeout连接关闭超时时间,默认值:10000 ms,取值为0时表示该参数无限大。

该参数表示当TCP连接关闭时,消费者还可以继续处理消息的时间。

消息发送接口

  • 接口名称sendMessage
  • 类名称com.alibaba.mqtt.server.ServerProducer
表 1. 消息发送参数
参数说明
mqttTopic

云消息队列 MQTT 版的Topic,包括父级Topic和子级Topic。

其中父级Topic需要在云消息队列 MQTT 版控制台创建。子级Topic无需创建,直接在代码中定义。更多信息,请参见基本概念

重要 如果使用了未创建或未授权的Topic,会导致客户端鉴权失败,云消息队列 MQTT 版服务端断开客户端的连接。
payload消息体。
sendCallback消息发送回调,在回调中处理消息发送状态。

消息订阅接口

  • 接口名称subscribeTopic
  • 类名称com.alibaba.mqtt.server.ServerConsumer
表 2. 消息订阅参数
参数说明
firstTopic您在云消息队列 MQTT 版控制台创建的父级Topic。更多信息,请参见基本概念
重要
  • 如果使用了未创建或未授权的Topic,会导致客户端鉴权失败,云消息队列 MQTT 版服务端断开客户端的连接。
  • 由于云端SDK订阅消息一般用于云上应用进行消息汇总和分析等场景,因此,云端SDK订阅消息不支持设置子级Topic。
messageListener消息订阅回调,在回调中处理订阅的消息。

设备上下线事件接口

  • 接口名称subscribeStatus
  • 类名称com.alibaba.mqtt.server.ServerConsumer
表 3. 设备上下线事件接口参数
参数说明
mqttGroupId

您在云消息队列 MQTT 版控制台创建的Group的ID。更多信息,请参见基本概念

statusListener上下线事件回调,在回调中处理设备上下线消息。