npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

huya-danmu

v2.0.3

Published

huya danmu module

Downloads

40

Readme

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'
    }