弹幕云游戏开发流程
弹幕云游戏基于虎牙小程序平台进行开发,以下是基于虎牙小程序平台实现一个弹幕云游戏demo(下载源码)的简要过程。
1. 创建本地项目
通过虎牙小程序CLI工具创建项目,详情参考创建项目。如图:
注意:终端类型必须选择pc主播端-面板 - 主播端面板
这里我们以BarrageGame为项目名,创建好的项目结构如图
2. 创建小程序
详情可以参考创建小程序流程。小程序运行平台选择虎牙直播。
创建好的小程序如图
请保管好您的开发者appId及appSecret,以及您的小程序id,后面连接弹幕WebSocket通道时会用到。
3. 监听弹幕消息
创建并正常启动小程序项目后,即可开始对接直播间弹幕消息。虎牙直播间弹幕消息的监听主要基于开放API实现,推荐通过hyext/communication库来实现消息的监听。
注意:由于云端运行环境不支持小程序前端SDK,弹幕云游戏只能通过开放API监听弹幕消息,不能通过小程序前端SDK监听弹幕消息!
第一步,在项目根目录下执行以下命令安装hyext/communication
npm i -D @hyext/communication
第二步,打开streamer\app.js并修改成代码:
import { UI } from '@hyext/hy-ui'
import React, { Component } from 'react'
import './app.hycss'
import { createOpenWS, WSEventIds } from "@hyext/communication";
const { View, Text } = UI
class App extends Component {
constructor(props){
super(props)
this.state={
data:[]
}
}
componentDidMount() {
hyExt.context.getStreamerInfo().then((streamerInfo) => {
const ws = createOpenWS({
appId: 'your_appid',// 开发者id
secret: 'your_secret', // 开发者密钥
expireTimeDelta: 60 * 10, // 10分钟
extUuid: 'your_extUuid',// 小程序id
roomId: streamerInfo.streamerRoomId, // 直播间ID
debug: true
})
// 监听ws内置事件
ws.on(WSEventIds.open, (data) => {
this.setState({data:[...this.state.data,'The ws has opened.']})
})
ws.on(WSEventIds.close, (data) => {
this.setState({data:[...this.state.data,'The ws has closed.']})
})
// 监听open-api弹幕事件
ws.on('getMessageNotice', (data) => {
console.log(data)
// this.setState({data:[...this.state.data, JSON.stringify(data)]})
this.setState({data:[...this.state.data, data.sendNick + ': ' + data.content]})
})
})
}
render () {
return (
<View className="container">
{this.state.data.map((item,i)=>{
return <Text key={i}>{i+'. '}{item}</Text>
})}
</View>
)
}
}
export default App
请注意将上面代码中的开发者id、开发者密钥、小程序id以及直播间id配置好,即修改这里的配置:
const ws = createOpenWS({
appId: 'your_appid',// 开发者id
secret: 'your_secret', // 开发者密钥
expireTimeDelta: 60 * 10, // 10分钟
extUuid: 'your_extUuid',// 小程序id
roomId: streamerInfo.streamerRoomId, // 直播间ID
debug: true
})
开发者id、开发者密钥可在开发者信息查询,如图:
小程序id可在开发者中心的小程序-概要中查询,如图:
直播间id即开发者账号(完成主播认证即可成为主播号)对应的直播间房间号,可在虎牙个人中心或者虎牙主站中查询,如图:
4. 本地测试
配置好相关参数后即可执行npx hyext start启动游戏。启动成功界面如下:
拷贝启动成功后输出的PC主播端-面板的URL(即https://localhost:18080/index_streamer_pc_anchor_panel.html),并在Chrome浏览器打开,即可呈现游戏程序对应的内容,如图所示:
浏览器显示0. The ws has opened.说明游戏已成功监听弹幕,接着在上述程序配置中的直播间(APP或主站均可)发送弹幕即可在浏览器上显示弹幕内容。如图
若是出现异常则可以寻找帮助。
5. 添加小程序
由于云端一键开播是用开发者账号进行开播,因此需要开发者给自己的账号添加小程序。添加小程序可以参考小程序安装教程。
6. 申请云端一键开播权限
云端一键开播是通过虎牙云生产平台运行小游戏,并将小游戏画面在直播间直播出来的技术。申请云端开播权限需要向管理员提出申请,请发送邮件到hy-ext@huya.com,说明申请原因并附带您的小程序id。
7. 云端一键开播
云端开播权限申请通过后,即可在您的小程序管理页中看到开播管理菜单,如图
分别输入直播间标题、直播间品类、直播间密码后,点击“开始直播”即可进行云端一键开播。
注意项1:测试版本的小程序只能在一起玩测试品类下开播,只有审核通过的正式版本小程序才可以在一起玩品类下开播!
注意项2:弹幕云游戏的直播间不能加密,否则小游戏无法通过开放API监听到弹幕消息!
开播成功后提示相关开播信息,请检查开播信息和开播版本(小程序的版本)是否正确。 若检查发现开播版本内容不正确,则需要先停止直播,添加正确版本的小程序后,再重新开播。若开播失败则可以联系管理员协助。
开播成功后可以点击“停止直播”按钮停止云端开播。
8. 线上测试
云端开播成功后即可进行线上测试验证,点击上一步开播成功后的直播间链接,即可跳转到对应的直播间参与弹幕云游戏。