此 API 用于向一个或多个指定的广播频道推送(发布)多条消息。消息可以是字符串类型,也可以是二进制文件类型。
multipart/form-data
请求体通过 multipart/form-data 格式传递,其中每个表单字段的 name
对应一个频道名称,value
可以是该频道的字符串消息,或者是一个文件作为二进制消息。
string
表单的每个字段名代表一个频道名称。例如,如果要向名为 "updates" 的频道发送消息,则表单字段名应为 "updates"。
string
或 File
对应于频道名称字段的值:
返回一个 JSON 对象,其中 data.results
数组包含了每条消息的发送结果。
参数名 | 类型 | 描述 |
---|---|---|
code | number | 返回码,0 表示整体请求成功处理(具体每条消息的成功与否见 `data.results`) |
msg | string | 错误信息,成功时为空字符串 |
data | object | 包含发送结果的对象 |
↳ results | array | 一个数组,每个元素代表一条消息的发送结果 |
↳ code | number | 单条消息的发送结果码,0 表示成功 |
↳ msg | string | 单条消息的发送错误信息 |
↳ channel | object | 目标频道信息 |
↳ name | string | 频道名称 |
↳ count | number | 当前频道的订阅者数量 |
↳ message | object | 已发送消息的描述信息 |
↳ type | string | 消息类型,"string" 或 "binary" |
↳ size | number | 消息大小 (字节) |
↳ filename | string | 文件名 (如果是二进制消息) |
向频道 "channel1" 发送字符串 "hello" 和 "world",并向 "channel2" 发送文件 "data.bin":
POST /api/broadcast/publish HTTP/1.1
Host: 127.0.0.1:6806
Authorization: YOUR_API_TOKEN_HERE (如果需要)
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="channel1"
hello
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="channel1"
world
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="channel2"; filename="data.bin"
Content-Type: application/octet-stream
(这里是 data.bin 文件的二进制内容)
------WebKitFormBoundary7MA4YWxkTrZu0gW--
{
"code": 0,
"msg": "",
"data": {
"results": [
{
"code": 0,
"msg": "",
"channel": {
"name": "channel1",
"count": 1
},
"message": {
"type": "string",
"size": 5,
"filename": ""
}
},
{
"code": 0,
"msg": "",
"channel": {
"name": "channel1",
"count": 1
},
"message": {
"type": "string",
"size": 5,
"filename": ""
}
},
{
"code": 0,
"msg": "",
"channel": {
"name": "channel2",
"count": 1
},
"message": {
"type": "binary",
"size": 12345, // 假设文件大小为 12345 字节
"filename": "data.bin"
}
}
]
}
}
channel.count
反映的是消息发送操作执行时,该频道的订阅者数量。注意:这是一个社区维护的文档,可能与官方最新版本存在差异。
如果您觉得本文档有帮助,可以考虑赞助支持:爱发电