- ac-danmu.js是orzogc/acfundanmu的Nodejs实现,这两个项目的诞生都离不开wpscott/AcFunDanmaku提供的实现思路和配置文件,请给他们点Star
- 因为使用了buffer所以不能运行在浏览器环境下, 编写使用node v12 lts
- Promise化的使用方式
- 事件化的使用流程
见example
const AcClient = require("ac-danmu")
//使用init(主播房间号)初始化客户端
AcClient("8500263").then((ac_client,{
login:ture ,//default false
userinfo: {username:"something",password:"something"} || [{username:"something",password:"something"}]//输入多组用户,每次重连会随机一个
}) => {
//启动websocket连接
ac_client.wsStart();
ac_client.on("enter", () => {
console.log("Enter room success!");
});
ac_client.on("recent-comment", (commmnets) => {
//获得建立连接当前的弹幕列表
console.log(commmnets);
});
ac_client.on("danmaku", (danmaku) => {
//收到的弹幕
console.log(danmaku);
});
});
或者
const AcClient = require("ac-danmu")
//使用init(主播房间号)初始化客户端
ac_client = await AcClient("8500263")
//启动websocket连接
ac_client.wsStart();
ac_client.on("enter", () => {
console.log("Enter room success!");
});
ac_client.on("recent-comment", (commmnets) => {
//获得建立连接当前的弹幕列表
console.log(commmnets);
});
ac_client.on("danmaku", (danmaku) => {
//收到的弹幕
console.log(danmaku);
});
收到的弹幕返回如下
{
content: '晚安',
sendTimeMs: Long {
low: -1921110048,
high: 372,
unsigned: false
},
userInfo: ZtLiveUserInfo {
avatar: [
[ImageCdnNode]
],
userId: Long {
low: 147764,
high: 0,
unsigned: false
},
nickname: 'NNK',
badge: '{"medalInfo":{"uperId":100001,"userId":100001,"clubName":"蓝钻","level":100}}',
userIdentity: ZtLiveUserIdentity {}
}
}
事件 | 触发 | payload类型 |
---|---|---|
banana | 有人发送了香蕉 | AcfunActionSignalThrowBanana |
danmaku | 当直播中任意用户发送弹幕产生 | CommonActionSignalComment |
enter | 程序进入直播间 | null |
follow | 有人关注了主播 | CommonActionSignalUserFollowAuthor |
gift | 有人发送礼物 | CommonActionSignalGift |
live-info | 当前直播间数据状态 | CommonStateSignalDisplayInfo |
redpack-info | 不知道 | CommonStateSignalCurrentRedpackList |
recent-comment | 当前弹幕列表 | CommonActionSignalComment[] |
topuser-info | 前几名用户的数据 | CommonStateSignalTopUsers |
user-enter | 用户进入直播间 | CommonActionSignalUserEnterRoom |
join-club | 用户加入主播守护团 | AcfunActionSignalJoinClub |
npm i ac-danmu --save