Skip to content

Commit

Permalink
Merge pull request #14 from simon300000/simon300000-patch-1
Browse files Browse the repository at this point in the history
更新直播ws协议
  • Loading branch information
lovelyyoshino authored Apr 24, 2019
2 parents 7f66002 + b005f66 commit de1c0de
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 8 deletions.
20 changes: 15 additions & 5 deletions API.WebSocket.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Bilibili 直播弹幕 WebSocket 协议
### 调用地址

* 普通未加密的 WebSocket 连接: `ws://broadcastlv.chat.bilibili.com:2244/sub`
* 使用 SSL 的 WebSocket 连接: `wss://broadcastlv.chat.bilibili.com:2245/sub`
* 使用 SSL 的 WebSocket 连接: `wss://broadcastlv.chat.bilibili.com/sub`

### 数据包格式

Expand All @@ -15,13 +15,21 @@ Bilibili 直播弹幕 WebSocket 协议
| --- | --- | --- | --- | --- | --- |
| 0 | 4 | int | Big Endian | Packet Length | 数据包长度 |
| 4 | 2 | int | Big Endian | Header Length | 数据包头部长度(固定为 `16`|
| 6 | 2 | int | Big Endian | Protocol Version | 协议版本(固定为 `1`|
| 6 | 2 | int | Big Endian | Protocol Version | 协议版本(见下文|
| 8 | 4 | int | Big Endian | Operation | 操作类型(见下文) |
| 12 | 4 | int | Big Endian | Sequence Id | 数据包头部长度(固定为 `1`|
| 16 | - | byte[] | - | Body | 数据内容 |

同一个 `WebSocket Frame` 可能包含多个 `Bilibili 直播数据包`,每个 `Bilibili 直播数据包` 直接首尾相连,数据包长度只表示 `Bilibili 直播数据包` 的长度,并非 `WebSocket Frame` 的长度。

#### 协议版本

|| Body 格式 | 说明 |
| --- | --- | --- |
| 0 | JSON | JSON纯文本,可以直接通过 `JSON.stringify` 解析 |
| 1 | Int 32 Big Endian | Body 内容为房间人气值 |
| 2 | Buffer | 压缩过的 Buffer,Body 内容需要用zlib.inflate解压出一个新的数据包,然后从数据包格式那一步重新操作一遍 |

#### 操作类型

|| 发送者 | Body 格式 | 名称 | 说明 |
Expand All @@ -36,21 +44,23 @@ Bilibili 直播弹幕 WebSocket 协议

```json
{
"clientver": "1.5.10.1",
"clientver": "1.6.3",
"platform": "web",
"protover": 1,
"protover": 2,
"roomid": 23058,
"uid": 0,
"type": 2
}
```

| 字段 | 必选 | 类型 | 说明|
| --- | --- | --- | --- |
| clientver | false | string | 例如 `"1.5.10.1"` |
| platform | false | string | 例如 `"web"` |
| protover | false | number | 通常为 `1` |
| protover | false | number | 通常为 `2` |
| roomid | true | number | 房间长 ID,可以通过 `room_init` API 获取 |
| uid | false | number | uin,可以通过 `getUserInfo` API 获取 |
| type | false | number | 不知道啥,总之写 `2` |

#### 心跳回应

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

[心跳包](./API.heartbeat.md)
[检测小黑屋](./API.room_init.md)
[获取cookies与access_key](./API.Login.md)
[获取cookies与access_key](./API.oauth.Login.md)
[检查抽奖状态](./API.Room_entry_action.md)
[礼物赠送](./API.Bag_send.md)
[佩戴勋章](./API.WearFansMedal.md)
Expand All @@ -18,7 +18,7 @@
[获取应援团信息](./API.Link_group.md)
[用户信息](./API.getUserInfo.md)

[总督亲密度领取](./API.Search.md)
[总督亲密度领取](./API.live.Search.md)
[日常包裹](./API.receive_daily_bag.md)
[硬币验证码获取](./API.sliver.md)

Expand Down Expand Up @@ -59,7 +59,7 @@

[弹幕WS协议](./API.WebSocket.md)
[播放记录获取](./API.RealRoom.md)
[历史记录](./API.History.md)
[历史记录](./API.app.History.md)



Expand Down

0 comments on commit de1c0de

Please sign in to comment.