Versions in this module Expand all Collapse all v0 v0.0.7 Apr 27, 2024 v0.0.6 Apr 27, 2024 v0.0.5 Apr 10, 2024 v0.0.4 Apr 7, 2024 v0.0.3 Apr 7, 2024 Changes in this version type BLiveClient + func NewBliveClient(appID int64, code string, client IApiClient) *BLiveClient + type IApiClient interface + AppEnd func(appId int64, gameId string) *PublicError + AppStart func(code string, appId int64) (*AppStartResult, *PublicError) + HearBeat func(gameId string) *PublicError v0.0.2 Apr 7, 2024 Changes in this version type DanmakuData + OpenID string type GiftData + OpenID string type SuperChatData + OpenID string type UserInfo + OpenID string v0.0.1 Jul 23, 2023 Changes in this version + const CmdDanmu + const CmdGift + const CmdLike + const CmdNewGuard + const CmdSuperChat + const CmdSuperChatDel + const MaxBusinessOp + const MinBusinessOp + const OpAuth + const OpAuthReply + const OpChangeRoom + const OpChangeRoomReply + const OpDisconnectReply + const OpHandshake + const OpHandshakeReply + const OpHeartbeat + const OpHeartbeatReply + const OpProtoFinish + const OpProtoReady + const OpRaw + const OpRegister + const OpRegisterReply + const OpSendMsg + const OpSendMsgReply + const OpUnregister + const OpUnregisterReply + const UrlAppBatchHeartBeat + const UrlAppHeartBeat + const UrlAppStart + const UrlAppStop + var ApiBase = "https://live-open.biliapi.com" + var ErrAPILimit = NewPublicError(4009, "接口访问限制", "请确认接口权限及请求频率") + var ErrConfiguration = NewPublicError(5003, "配置错误", "请联系B站对接同学") + var ErrDuplicateHeartbeatID = NewPublicError(7005, "批量心跳ID重复", ...) + var ErrDuplicateRequest = NewPublicError(4004, "重复请求", "请检查header的x-bili-nonce") + var ErrExpiredHeartbeat = NewPublicError(7003, "心跳过期", "当前game_id错误或互动游戏已关闭") + var ErrExpiredRequest = NewPublicError(4003, "请求过期", "请检查header的x-bili-timestamp") + var ErrExpiredVerificationCode = NewPublicError(6002, "验证码已过期", "验证码超过规定有效期") + var ErrIPWhitelist = NewPublicError(4007, "IP白名单限制", ...) + var ErrInternal = NewPublicError(5002, "内部错误", "请联系B站对接同学") + var ErrInvalidAcceptType = NewPublicError(4013, "Accept不为application/json", "请检查header的Accept") + var ErrInvalidApp = NewPublicError(4001, "应用无效", ...) + var ErrInvalidContentType = NewPublicError(4011, "Content-Type不为application/json", "请检查header的Content-Type") + var ErrInvalidIdentityCode = NewPublicError(7007, "身份码错误", "请检查身份码是否正确") + var ErrInvalidParameter = NewPublicError(4000, "参数错误", "请检查必填参数,参数大小限制") + var ErrInvalidPhoneNumber = NewPublicError(6001, "手机号码错误", "检查手机号码") + var ErrInvalidSignatureMethod = NewPublicError(4005, "签名method异常", "请检查header的x-bili-signature-method") + var ErrInvalidVerificationCode = NewPublicError(6000, "验证码错误", "验证码校验失败") + var ErrInvalidVersion = NewPublicError(4006, "版本异常", "请检查header的x-bili-version") + var ErrMD5Validation = NewPublicError(4012, "MD5校验失败", "请检查header的x-bili-content-md5") + var ErrMaxHeartbeatBatchSize = NewPublicError(7004, "批量心跳超过最大值", "批量心跳单次最大值为200") + var ErrNoProjectAccess = NewPublicError(8002, "项目无权限访问", "确认项目ID是否正确") + var ErrNotFound = NewPublicError(4010, "接口不存在", "请确认请求接口url") + var ErrNotInGame = NewPublicError(7000, "不在游戏内", "当前房间未进行互动游戏") + var ErrPermission = NewPublicError(4008, "权限异常", "请确认接口权限") + var ErrRequestCooldown = NewPublicError(7001, "请求冷却期", ...) + var ErrRequestTimeout = NewPublicError(5001, "请求超时", "请求超时") + var ErrRoomBlacklist = NewPublicError(5005, "房间黑名单限制", "请联系B站对接同学") + var ErrRoomInGame = NewPublicError(7002, "房间重复游戏", ...) + var ErrRoomWhitelist = NewPublicError(5004, "房间白名单限制", "请联系B站对接同学") + var ErrService = NewPublicError(5000, "服务异常", "请联系B站对接同学") + var ErrSignature = NewPublicError(4002, "签名异常", "请检查header的Authorization") + var ErrUnknown = NewPublicError(0, "unknown error", "") + var ErrVerificationRateLimit = NewPublicError(6003, "验证码频率限制", "检查获取验证码的频率") + func MakeWSPacket(operation int, data []byte) []byte + func ZlibCompress(src []byte) []byte + func ZlibDeCompress(compressSrc []byte) ([]byte, error) + type AnchorInfo struct + RoomID int + UID int + Uface string + Uname string + type ApiClient struct + func NewApiClient(accessKey string, accessSecret string) *ApiClient + func (c *ApiClient) AppEnd(appId int64, gameId string) *PublicError + func (c *ApiClient) AppStart(code string, appId int64) (*AppStartResult, *PublicError) + func (c *ApiClient) HearBeat(gameId string) error + type AppStartResult struct + AnchorInfo AnchorInfo + GameInfo GameInfo + WebSocketInfo WebSocketInfo + type BLiveApp struct + AccessKey string + AccessSecret string + AppID int64 + func (app *BLiveApp) CreateClient(code string) *BLiveClient + type BLiveClient struct + AppID int64 + AppInfo *AppStartResult + Code string + HearbeatInterval time.Duration + func (c *BLiveClient) End() error + func (c *BLiveClient) GetLongConn() BLiveLongConnection + func (c *BLiveClient) SetLongConn(conn BLiveLongConnection) + func (c *BLiveClient) Start() error + func (c *BLiveClient) Status() bool + type BLiveLongConnection interface + CloseConnection func() error + EstablishConnection func(ctx context.Context) error + OnDanmu func(handlers ...DanmuHandler) + OnDisconnect func(callback DisconnectCallback) + OnError func(callback ConnErrorHandler) + OnGift func(handlers ...GiftHandler) + OnLike func(handlers ...LikeHandler) + OnNewGuard func(handlers ...NewGuardHandler) + OnSuperChat func(handlers ...SuperChatHandler) + OnSuperChatDel func(handlers ...SuperChatDelHandler) + Status func() bool + func NewOpenBLiveLongConn(wssInfo WebSocketInfo) BLiveLongConnection + type CmdData struct + Cmd string + Data json.RawMessage + func (d *CmdData) ToDanmu() DanmakuData + func (d *CmdData) ToGift() GiftData + func (d *CmdData) ToLike() LikeData + func (d *CmdData) ToNewGuard() NewGuardData + func (d *CmdData) ToSuperChat() SuperChatData + func (d *CmdData) ToSuperChatDel() SuperChatDelData + type CommonResponse struct + Code int + Data json.RawMessage + Message string + type ConnErrorHandler func(err error) + type DanmakuData struct + DanMuType int + EmojiImgURL string + GuardLevel int + Msg string + MsgID string + RoomID int + Timestamp int64 + UFace string + UID int + UName string + type DanmuHandler func(data DanmakuData) + type DisconnectCallback func(conn BLiveLongConnection) + type GameInfo struct + GameID string + type GiftData struct + AnchorInfo UserInfo + ComboGift bool + ComboInfo struct{ ... } + GiftID int + GiftIcon string + GiftName string + GiftNum int + GuardLevel int + MsgID string + Paid bool + Price int + RoomID int + Timestamp int64 + UFace string + UID int + UName string + type GiftHandler func(data GiftData) + type LikeData struct + LikeText string + MsgID string + RoomID int + Timestamp int64 + type LikeHandler func(data LikeData) + type MedalInfo struct + FansMedalLevel int + FansMedalName string + FansMedalWearingStatus bool + type NewGuardData struct + GuardLevel int + GuardNum int + GuardUnit string + MsgID string + RoomID int + Timestamp int64 + UserInfo UserInfo + type NewGuardHandler func(data NewGuardData) + type PublicError struct + Code int + Detail string + Message string + func GetErrorFromCode(errcode int) *PublicError + func NewPublicError(code int, msg string, detail string) *PublicError + func (e *PublicError) Error() string + func (e *PublicError) WithDetail(detail error) *PublicError + type SuperChatData struct + EndTime int64 + GuardLevel int + Message string + MessageID int + MsgID string + RMB int + RoomID int + StartTime int64 + Timestamp int64 + UFace string + UID int + UName string + type SuperChatDelData struct + MessageIDs []int + MsgID string + RoomID int + type SuperChatDelHandler func(data SuperChatDelData) + type SuperChatHandler func(data SuperChatData) + type UserInfo struct + UFace string + UID int + UName string + type WebSocketInfo struct + AuthBody string + WssLink []string + type WsHeader struct + HeaderLength uint16 + Operation uint32 + PacketLength uint32 + ProtocolVersion uint16 + Sequence uint32 + type WsPacket struct + Data []byte + Header WsHeader + func ResolveWSPacket(data []byte) (WsPacket, bool)