{"id":22746155,"url":"https://github.com/meteorgx/mixopenblivegame","last_synced_at":"2025-03-30T05:20:29.454Z","repository":{"id":171075018,"uuid":"647413446","full_name":"MeteorGX/MixOpenBLiveGame","owner":"MeteorGX","description":"哔哩哔哩直播 By Java","archived":false,"fork":false,"pushed_at":"2023-05-30T18:29:31.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-05T07:26:58.458Z","etag":null,"topics":["bilibili-live"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MeteorGX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-30T18:21:40.000Z","updated_at":"2023-05-30T18:36:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"089e5257-c9e1-46f2-8a17-1521b120d90d","html_url":"https://github.com/MeteorGX/MixOpenBLiveGame","commit_stats":null,"previous_names":["meteorgx/mixopenblivegame"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeteorGX%2FMixOpenBLiveGame","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeteorGX%2FMixOpenBLiveGame/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeteorGX%2FMixOpenBLiveGame/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeteorGX%2FMixOpenBLiveGame/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MeteorGX","download_url":"https://codeload.github.com/MeteorGX/MixOpenBLiveGame/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246278457,"owners_count":20751765,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bilibili-live"],"created_at":"2024-12-11T02:11:45.883Z","updated_at":"2025-03-30T05:20:29.427Z","avatar_url":"https://github.com/MeteorGX.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 哔哩哔哩直播 By Java #\n\n### 依赖 ###\n\n这里采用 `SpringBoot` 作为基础开发, 基于以下依赖:\n* `SpringBoot(2.7.8+)`\n* `MariaDB`\n* `Ubuntu(20+)`\n\n部分依赖可以按需来处理.\n\n### 流程 ###\n\n哔哩哔哩直播游戏常规流程类似于游戏场次开房, 主要由客户端鉴权拿到 `websocket` 之后监听弹幕指令, 流程如下:\n1. 主播开启游戏输入用户码, 请求 `Web` 端让其转发 `客户端` 请求的指令:  防止 `Key/Secret` 暴露泄露.\n2. `Web` 端转发之后可以记录数据库, 返回哔哩哔哩官方响应 `Websocket` 请求: 记录数据可以进行访问统计和常用主播捆绑分析付费用户等.\n3. `Web` 响应拿到 `websocket` 之后关于 `Web` 流程结束转而由客户端监听 `websocket` 端.\n4. `客户端` 监听弹幕来对游戏指令进行解析处理走游戏逻辑\n\n\u003e 实际上和服务器交互只有鉴权, 剩下流程全部是基于客户端的游戏逻辑处理.\n\n### 高级 ###\n\n可以通过服务端反转作为客户端监听 `websocket`, 让服务端维护心跳/监听请求, 同时把游戏逻辑在服务端计算而把客户端仅仅作为游戏数据帧同步工具.\n\n待续...\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeteorgx%2Fmixopenblivegame","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeteorgx%2Fmixopenblivegame","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeteorgx%2Fmixopenblivegame/lists"}