环信MQTT消息云支持服务器端集成SDK,实现一对多消息发送、获取token、获取客户端连接记录、查询客户端session信息以及查询客户端消息发布&投递记录等功能,本文为服务器端集成MQTT SDK提供对接指导及数据规范。
函数名称 | 描述 |
createClient | SDK初始化 |
ApplyTokenRequest | 获取临时访问token |
SendMessage | 发送消息,向指定topic发送消息,支持同时向多个topic发送消息 |
QueryMqttRecordDevice | 查询MQTT客户端连接记录,包括连接动作、订阅、发布、断开连接等记录 |
QuerySessionByClientId | 查询客户端当前session信息,包括在线状态、最新上线时间、登录用户ID、使用版本、订阅关系等 |
QueryMqttRecordMessageOfClient | 查询客户端消息发送&投递记录 |
QueryMqttRecordMessagePublish | 查询指定消息的发送记录 |
QueryMqttRecordMessageSubscribe | 查询指定消息的投递记录 |
函数名称 | createClient() | ||
方法说明 | 初始化 | ||
参数名称 | 类型 | 是否必须 | 说明 |
AppClientId | String | 是 | 开发者Client ID,系统生成,在console【应用概览】→【应用详情】→【开发者ID】下的‘ClientID’获取 |
AppClientSecret | String | 是 | 开发者密钥,在console【应用概览】→【应用详情】→【开发者ID】下的‘ClientSecret’获取 |
RestApi | String | 是 | REST API地址,在console【MQTT】→【服务概览】→【服务配置】下的‘REST API地址’获取 |
代码示例 | |||
|
函数名称 | ApplyTokenRequest() | ||
方法说明 | 获取临时访问token | ||
参数名称 | 类型 | 是否必须 | 说明 |
Username | String | 是 | 环信账户系统中的用户ID,在【应用概览】→【用户认证】下的用户ID创建与获取; |
Password | String | 是 | 环信账户系统中的用户密码,在【应用概览】→【用户认证】下的用户ID创建与获取; |
代码示例 | |||
|
|||
返回参数 | 类型 | 说明 | |
code | Integer | 200:获取成功;400:获取失败 | |
msg | String | success:获取成功;fail:获取失败 | |
body | Object | access_token:获取到的token; expires_in:token过期时间; type:token类型; username:用户名; |
函数名称 | SendMessage() | ||
方法说明 | 向指定topic发送消息,支持同时向多个topic发送消息 | ||
参数名称 | 类型 | 是否必须 | 说明 |
topics | String[] | 是 | 主题名称数组,最多32个主题 |
Clientid | String | 是 | 服务器端的Clientid,由“{deviceID}@{AppID}”组成,其中{deviceID}由用户自定义,{AppID}在console后台的 【MQTT】→ 【服务概览】→【服务配置】下的‘AppID’获取 |
Payload | String | 是 | 消息内容,支持json、xml、raw格式 |
Encoding | String | 否 | 消息体编码方式,支持 plain 与 base64 两种,默认为 plain |
Qos | Integer | 否 | QoS等级,默认为0 |
Expire | Integer | 否 | 消息最大保留时间,单位:秒,取值范围:[86400,259200] |
代码示例 | |||
|
|||
返回参数 | 类型 | 说明 | |
code | Integer | 200:发送成功;400:发送失败 | |
msg | String | success:发送成功;fail:发送失败 | |
body | Object | mids:消息ID列表,与发送消息顺序对应 |
函数名称 | QueryMqttRecordDevice() | ||
方法说明 | 查询MQTT客户端连接记录,包括连接动作、订阅、发布、断开连接等记录 | ||
参数名称 | 类型 | 是否必须 | 说明 |
Clientid | String | 是 | 待查询的Clientid,由“{deviceID}@{AppID}”组成,其中{deviceID}由用户自定义,{AppID}在console后台的 【MQTT】→ 【服务概览】→【服务配置】下的‘AppID’获取 |
BeginTime | String | 是 | 查询起始时间 |
EndTime | String | 是 | 查询结束时间 |
CurrentPage | Integer | 否 | 当前页码,默认1 |
PageSize | Integer | 否 | 分页大小,默认10 |
代码示例 | |||
|
|||
返回参数 | 类型 | 说明 | |
code | Integer | 200:发送成功;400:发送失败 | |
msg | String | success:发送成功;fail:发送失败 | |
body | Object | totalCount:记录总数; ts:记录发生时间; status:记录状态; reason:记录发生原因; detail:记录详情 |
函数名称 | QuerySessionByClientId() | ||
方法说明 | 查询客户端当前session信息,包括在线状态、最新上线时间、登录用户ID、使用版本、订阅关系等 | ||
参数名称 | 类型 | 是否必须 | 说明 |
Clientid | String | 是 | 待查询的Clientid,由“{deviceID}@{AppID}”组成,其中{deviceID}由用户自定义,{AppID}在console后台的 【MQTT】→ 【服务概览】→【服务配置】下的‘AppID’获取 |
CurrentPage | Integer | 否 | 当前页码,默认1 |
PageSize | Integer | 否 | 分页大小,默认10 |
代码示例 | |||
|
|||
返回参数 | 类型 | 说明 | |
code | Integer | 200:查询成功;400:查询失败 | |
msg | String | success:查询成功;fail:查询失败 | |
body | Object | status:在线状态,online为在线,offline为离线; time:最新连接时间; user:当前登录使用的用户ID; keepalive:心跳间隔; cleansession:是否清除会话,true:清除,false:不清除; will:是否遗嘱消息,true:是,false:否; version:MQTT版本; pageSize:订阅主题页面大小; currentPage:订阅主题当前页; total:总条数; topic:订阅的主题名称; qos:设置的QoS等级 |
函数名称 | QueryMqttRecordMessageOfClient() | ||
方法说明 | 查询客户端消息发送&投递记录 | ||
参数名称 | 类型 | 是否必须 | 说明 |
Clientid | String | 是 | 待查询的Clientid,由“{deviceID}@{AppID}”组成,其中{deviceID}由用户自定义,{AppID}在console后台的 【MQTT】→ 【服务概览】→【服务配置】下的‘AppID’获取 |
BeginTime | String | 是 | 查询起始时间 |
EndTime | String | 是 | 查询结束时间 |
CurrentPage | Integer | 否 | 当前页码,默认1 |
PageSize | Integer | 否 | 分页大小,默认10 |
Order | String | 否 | 取值:“ASC”升序,“DESC”降序 |
代码示例 | |||
|
|||
返回参数 | 类型 | 说明 | |
code | Integer | 200:查询成功;400:查询失败 | |
msg | String | success:查询成功;fail:查询失败 | |
body | Object | ts:消息发送/接收时间; mid:消息ID; cid:客户端ID; direction:消息上行/下行,上行:uplink,下行:downlink |
函数名称 | QueryMqttRecordMessagePublish() | ||
方法说明 | 查询指定消息的发送记录 | ||
参数名称 | 类型 | 是否必须 | 说明 |
Clientid | String | 是 | 待查询的Clientid,由“{deviceID}@{AppID}”组成,其中{deviceID}由用户自定义,{AppID}在console后台的 【MQTT】→ 【服务概览】→【服务配置】下的‘AppID’获取 |
Messageid | String | 是 | 指定的消息ID |
Order | String | 否 | 取值:“ASC”升序,“DESC”降序 |
代码示例 | |||
|
|||
返回参数 | 类型 | 说明 | |
code | Integer | 200:查询成功;400:查询失败 | |
msg | String | success:查询成功;fail:查询失败 | |
body | Object | ts:消息发送时间; mid:消息ID; cid:发送客户端ID; status:状态; topic:消息发送主题; qos:消息qos等级 |
函数名称 | QueryMqttRecordMessageSubscribe() | ||
方法说明 | 查询指定消息的投递记录 | ||
参数名称 | 类型 | 是否必须 | 说明 |
Clientid | String | 是 | 待查询的Clientid,由“{deviceID}@{AppID}”组成,其中{deviceID}由用户自定义,{AppID}在console后台的 【MQTT】→ 【服务概览】→【服务配置】下的‘AppID’获取 |
Messageid | String | 是 | 指定的消息ID |
BeginTime | String | 是 | 查询起始时间 |
EndTime | String | 是 | 查询结束时间 |
CurrentPage | Integer | 否 | 当前页码,默认1 |
PageSize | Integer | 否 | 分页大小,默认10 |
Order | String | 否 | 取值:“ASC”升序,“DESC”降序 |
代码示例 | |||
|
|||
返回参数 | 类型 | 说明 | |
code | Integer | 200:查询成功;400:查询失败 | |
msg | String | success:查询成功;fail:查询失败 | |
body | Object | ts:消息投递时间; cid:接收客户端ID; status:状态; topic:消息投递主题; qos:消息qos等级 |
函数名称 | QueryMqttRecordMessageSubscribe() | ||
方法说明 | 查询指定消息的投递记录 | ||
参数名称 | 类型 | 是否必须 | 说明 |
Clientid | String | 是 | 待查询的Clientid,由“{deviceID}@{AppID}”组成,其中{deviceID}由用户自定义,{AppID}在console后台的 【MQTT】→ 【服务概览】→【服务配置】下的‘AppID’获取 |
Messageid | String | 是 | 指定的消息ID |
BeginTime | String | 是 | 查询起始时间 |
EndTime | String | 是 | 查询结束时间 |
CurrentPage | Integer | 否 | 当前页码,默认1 |
PageSize | Integer | 否 | 分页大小,默认10 |
Order | String | 否 | 取值:“ASC”升序,“DESC”降序 |
代码示例 | |||
|
|||
返回参数 | 类型 | 说明 | |
code | Integer | 200:查询成功;400:查询失败 | |
msg | String | success:查询成功;fail:查询失败 | |
body | Object | ts:消息投递时间; cid:接收客户端ID; status:状态; topic:消息投递主题; qos:消息qos等级 |