Git Product home page Git Product logo

huya-danmu's Introduction

huya-danmu

huya-danmu 是Node.js版本虎牙直播弹幕监听模块。

简单易用,使用不到三十行代码,你就可以使用Node.js基于弹幕进一步开发。

Installation

可以通过本命令安装 huya-danmu:

npm install huya-danmu --save

Simple uses

通过如下代码,可以初步通过Node.js对弹幕进行处理。

const huya_danmu = require('huya-danmu')
const roomid = 'edc595'
const client = new huya_danmu(roomid)

client.on('connect', () => {
    console.log(`已连接huya ${roomid}房间弹幕~`)
})

client.on('message', msg => {
    switch (msg.type) {
        case 'chat':
            console.log(`[${msg.from.name}]:${msg.content}`)
            break
        case 'gift':
            console.log(`[${msg.from.name}]->赠送${msg.count}${msg.name}`)
            break
        case 'online':
            console.log(`[当前人气]:${msg.count}`)
            break
    }
})

client.on('error', e => {
    console.log(e)
})

client.on('close', () => {
    console.log('close')
})

client.start()

API

开始监听弹幕

const huya_danmu = require('huya-danmu')
const roomid = 'kaerlol'
const client = new huya_danmu(roomid)
client.start()

使用socks5代理监听

const huya_danmu = require('huya-danmu')
const roomid = '80000'
const proxy = 'socks://name:[email protected]:1080'
const client = new huya_danmu({roomid,proxy})
client.start()

停止监听弹幕

client.stop()

断线重连

client.on('close', _ => {
    client.start()
})

监听事件

client.on('connect', _ => {
    console.log('connect')
})

client.on('message', console.log)

client.on('error', console.log)

client.on('close', _ => {
    console.log('close')
})

msg对象

msg对象type有chat,gift,online三种值 分别对应聊天内容、礼物、在线人数

chat消息

    {
        type: 'chat',
        time: '毫秒时间戳(服务器无返回time,此处为本地收到消息时间),Number',
        from: {
            name: '发送者昵称,String',
            rid: '发送者rid,String',
        },
        id: '弹幕唯一id,String',
        content: '聊天内容,String'
    }

gift消息

    {
        type: 'gift',
        time: '毫秒时间戳(服务器无返回time,此处为本地收到消息时间),Number',
        name: '礼物名称,String',
        from: {
            name: '发送者昵称,String',
            rid: '发送者rid,String',
        },
        id: '唯一ID,String',        
        count: '礼物数量,Number',
        price: '礼物总价值(单位Y币),Number',
        earn: '礼物总价值(单位元),Number'
    }

online消息

    {
        type: 'online',
        time: '毫秒时间戳(服务器无返回time,此处为本地收到消息时间),Number',
        count: '当前人气值,Number'
    }

huya-danmu's People

Contributors

bacootang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

huya-danmu's Issues

npm & cnpm 安装失败

npm install huya-danmu --save

npm ERR! code E404
npm ERR! 404 Not Found: huya-danmu@latest

by the way, npm网站中也搜不到huya-danmu

代码运行不起来啊,能否棒棒我,有偿

大神你好,我运行不起来啊,报错,我也不知道怎么改,能不能加我wx啊,doudoulihaijun,可以有偿的,好商量的,谢谢了,非常感谢,特别像抓聊天内容理解他的原理。

652行之后似乎应该加一行代码

好像652行之后 ( case Taf.DataHelp.EN_INT32:  this.buf.position += 4;  break;  ) 应该再加上"EN_INT64"情况:
        case Taf.DataHelp.EN_INT64:
            this.buf.position += 8;
            break;

请教作者一个问题

作者你好,我在浏览器的network中,并没有看到获取弹幕的请求或者websocket,请问这个获取弹幕的原理是什么呢,虎牙是通过什么方式收取弹幕消息的呢?

请教一个问题

最近同在研究虎牙.
请问这位大哥有研究出虎牙限制登录显示人气的具体地方吗?
.mark.

关于协议问题

你好,请问在哪里能看到每个域 里对象所对应的关系

比如
1002,1003,1005,,6052,6200,6210,6220,6221,6230,6231,6232,6233,6234,6250,,这些,我们只在代码中看到你解析了三个,其他都代表什么呢?请指点一下,谢谢

Cleanup non issue

When my account was compromised a spam issue was created in this repo. I sincerely apologize. Cleaning up such issues via script.

目前用不了

现在这个接口返回的html里没有SUBSID、TOPSID、ayyuid了,执行demo直接close了。

let body = await r({
    url: `https://m.huya.com/${this._roomid}`,
    agent: this._agent
})

请教一个问题

大佬,小弟初看到你写的huya-danmu,非常震惊。但是你既然弹幕消息都可以获取到,为啥发送弹幕的用户头像没有一并获取呢?难道说难度系数很高,特别想获取用户头像,还有礼物头像数据

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.