跳到主要内容

数据协议

这是一个指导客户端与直播助理 WebSocket 服务器进行数据通信的协议。

安装包

yarn add @live-assistant/protocols-data

服务器

在大多数情况下,服务器运行在本地端口上,例如 ws://localhost:[PORT]/data,但它也可以是一个公共服务器,例如 wss://example.com:[PORT]/data

要连接到服务器,请在你的客户端中建立与 ws://localhost:[PORT]/data?authorization=[PASSWORD]&types=[TYPES]&version=[VERSION]wss://example.com:[PORT]/data?authorization=[PASSWORD]&types=[TYPES]&version=[VERSION] 的 WebSocket 连接。

端口

默认情况下,服务器运行在端口 7196 上,但是用户也可以更改它。

密码

如果用户设置了密码,那么连接到服务器时需要密码。

版本

协议的版本,服务器只会接受版本小于或等于服务器支持的版本的连接。否则,服务器将关闭连接。

类型

客户端请求的数据类型。服务器只会接受所有请求的数据类型都可用的连接,否则,服务器将关闭连接。

这个参数是逗号分隔的数据类型列表。例如,types=message,gift 将请求服务器发送 messagegift 数据。要了解更多关于数据类型的信息,请参阅数据类型

心跳

鉴于目前唯一的服务器实现是直播助理桌面应用程序,因此协议不要求客户端向服务器发送心跳。这种行为可能会在未来发生变化。

消息格式

通过 WebSocket 发送的消息是一个序列化的 JSON 字符串,格式如下:

type DataType = {
| 'enter'
| 'follow'
| 'audienceUpdate'
| 'message'
| 'superChat'
| 'gift'
| 'membership'
| 'viewersCount'
| 'caption'
| 'heartRate'
| 'mediaInfo'
| 'inputAudioSpectrum'
| 'outputAudioSpectrum'
| 'karaokeStation'
| 'mousePosition'
| 'mouseButton'
| 'keyboardButton'
| 'gamepad'
}

type Message = {
type: DataType
payload: Payload
}

payload 的真实类型取决于 type。有关更多信息,请参阅数据类型