动态修改客户端 Keep Alive 时间

最近更新时间:2025-12-09 10:33:21

我的收藏

概述

本接口用于动态调整在线 MQTT 客户端的 Keep Alive(心跳保活)时间。调用此接口后,服务端将在不中断客户端连接的情况下,立即生效新的Keep Alive 时间。

使用方法

curl --verbose --request POST -H "Authorization: Basic base64(username:password)" http://mqtt.cloud.tencent.com/keep-alive?client-id=${client-id}&interval=${seconds}

认证方式

目前支持 Basic HTTP Authentication 和基于 X509 证书的“一机一证”两种认证方式,暂未支持基于 JWT 的认证方式。

Basic HTTP Authentication

进行基本认证过程中的参数如下:
请求的HTTP头字段会包含Authorization字段,形式如下: Authorization: Basic <credentials>
<credentials> = username:passwordBase64 编码。
username 会参与 ACL 授权。

BYOC(基于 X.509 证书认证)

客户端信任的根证书:CA.crt
客户端证书链文件:client.chain.crt
客户端私钥文件:client.pkcs8.key

请求参数

参数名
是否必填
类型
说明
client-id
String
客户端 ID
interval
Integer
新的 Keep Alive 时间,取值范围为30 ~ 1200(单位:秒)
注意:
在调用本接口时,有以下限制:
不支持修改当前 Keep Alive 为 0 的会话:如果客户端连接时设置的 Keep Alive 为 0,则无法通过此接口修改。
不支持将 Keep Alive 修改为 0:不允许将现有连接的 Keep Alive 时间动态调整为 0。

响应参数

参数名
类型
说明
success
Boolean
请求处理结果。true 表示修改指令下发成功。
keepalive
Integer
修改后的 Keep Alive 时间值(秒)。

请求示例

示例 1

使用 Basic Authentication
curl --request POST \\
--header "Authorization: Basic c2Vpcm9saTIyMjo5NEZWUmpTejBOR0dXVmFU" \\
"http://mqtt.cloud.tencent.com/keep-alive?client-id=curl-x&interval=120"

示例 2

使用 BYOC 证书认证
curl --tlsv1.2 \\
--cacert CA.crt \\
--cert client.chain.crt \\
--key client.pkcs8.key \\
--verbose \\
--request POST \\
"https://mqtt.cloud.tencent.com/keep-alive?client-id=curl-x&interval=120"

响应示例

响应成功示例

{
"success": true,
"keepalive": 120
}

返回的 Status Code 说明:

1. 支持 HTTP Method:POST。
2. 支持 HTTP/HTTPS。
3. 通过 HTTP Basic Authentication 或 BYOC 实现认证, 参见 Basic Authentication
4. 认证、授权:用户名和密码必须合法,且该账户必须有 CONNECT 权限。
5. HTTP 响应:
HTTP Status Code(状态码)
描述
200
请求正常。
401
认证失败,用户名或者密码不正确。
403
鉴权失败,缺少 CONNECT 权限。
429
流控,Too Many Requests。