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

bsy-live-ui

v1.0.9

Published

抱石云直播间demo

Downloads

1

Readme

BSY-LIVE-DEMO-REACT

REACT + ANT-DESIGN + RxJS + BSY-LIVE-SDK

抱石云直播间

安装依赖

npm install

本地项目启动

npm run dev

项目构建

npm run build

用于测试环境

npm run build:test

使用方式

该项目有三种使用方式:

  1. 将该项目整体打包,在目标项目中载入打包生成的js,进行调用并生成实例
  2. 将该项目中的代码作为目标项目的组件进行整合
  3. 参考该项目对bsy-live-sdk的调用方式和流程,在目标项目中自行编写符合自身需要的UI组件

修改主题色

修改src/theme.lesssrc/theme.styl里的颜色变量即可,更进一步的自定义设置需要取对应的组件样式表中修改

使用的SVG图片位于/src/assets文件夹下,需要单独修改其中的文件中相关的颜色

修改打包的ant-design样式前缀

修改src/theme.lesssrc/theme.styl里的ant-prefix变量,并且修改app.js里的ConfigProvider组件的prefixCls变量即可

目录结构

├── README.md
├── babel.config.js
├── build
│   ├── index.html
│   ├── liveroom-latest.min.js // 打包之后生成的主文件,包含将Liveroom构造器挂载至window的操作
│   ├── liveroom-latest.min.js.map
│   ├── liveroom.min.js // 同一个文件,两个名字
│   ├── liveroom.min.js.map
│   └── readme.md
├── config
│   ├── build.js // 打包命令
│   ├── constants.js
│   ├── path.js // resolvePath方法
│   └── webpack.config.babel.js // webpack配置文件
├── jsconfig.json
├── package.json
├── postcss.config.js
├── public
│   └── readme.md // build中的readme.md的源文件
└── src
    ├── api
    │   ├── activity.js // IM活动、红包相关的api接口
    │   ├── ask.js // IM问答、答题相关的api接口
    │   ├── liveGoods.js // 直播货架相关的api接口
    │   ├── mic.js // 连麦(rtc)功能相关的api接口
    │   ├── upload.js // 上传图片的api接口
    │   └── user.js // 用户相关操作的api接口
    ├── app.js // 组件渲染主入口,如果需要作为整个项目运行的话将getApp中的App单独渲染即可
    ├── assets // 一些使用到的icon的svg,注意⚠️:它们的颜色是单独写在svg文件里的,如果要改的话建议直接修改,或者换成用别的方式进行引用
    ├── components
    │   ├── Addvert // 货架广告小浮窗组件
    │   │   ├── dom.js // 生成小浮窗dom的方法
    │   │   ├── index.js // 小浮窗对外暴露的调用方法
    │   │   └── index.styl
    │   ├── Container
    │   │   ├── Layout // 直播间主布局
    │   │   │   ├── index.js
    │   │   │   └── index.styl
    │   │   ├── MainContainer // 布局的左侧主内容容器(播放器、连麦视频等)
    │   │   │   ├── index.js
    │   │   │   └── index.styl
    │   │   └── SliderContainer // 布局右侧的IM内容容器(IM相关的所有功能,白板和视频的相关功能)
    │   │       ├── index.js
    │   │       └── index.styl
    │   ├── IM // IM相关的组件
    │   │   ├── Hooks // IM组件和页面所使用的通用逻辑Hooks
    │   │   │   ├── useChatRoom.js
    │   │   │   ├── useMessageItem.js
    │   │   │   ├── useMessageList.js
    │   │   │   ├── useRole.js
    │   │   │   └── useSendBox.js
    │   │   ├── InitialEntry // 教师和学生的IM组件共用的入口组件,包含通用逻辑
    │   │   │   └── index.js
    │   │   ├── Loading // IM的Loading组件(未使用)
    │   │   │   ├── index.js
    │   │   │   └── style.styl
    │   │   ├── NoDataTemplate // 没有数据时共用的占位组件
    │   │   │   ├── index.js
    │   │   │   ├── mstyle.styl
    │   │   │   └── style.styl
    │   │   ├── RoleControl // 按照初始化直播间时传入的用户角色来
    │   │   │   └── index.js
    │   │   └── Zan // 点赞组件
    │   │       └── index.js
    │   ├── ImgLoad // 图片预览组件
    │   │   ├── ImgLoad.js
    │   │   ├── index.module.less
    │   │   ├── readme.md
    │   │   └── showImage.js // 调用生成预览组件实例的方法
    │   ├── Loading // 整体直播间loading组件
    │   │   ├── index.js
    │   │   └── index.styl
    │   ├── Message // 仿antd实现的Message组件,用于展示操作的反馈信息
    │   │   ├── consts.js
    │   │   ├── index.js
    │   │   ├── index.module.less
    │   │   └── message.js // 仿照antd实现了四种类型的message方法,显示不同的icon
    │   ├── MobileDrawer // 移动端的底部弹出抽屉
    │   │   ├── index.js
    │   │   └── index.styl
    │   ├── Player // 播放器容器组件
    │   │   ├── Tips // 播放器容器的提示组件
    │   │   │   ├── index.js
    │   │   │   └── index.styl
    │   │   ├── index.js
    │   │   └── index.styl
    │   ├── PopUp // 通用弹出框组件,用以展示包含自定义内容的悬浮窗
    │   │   ├── PopUp.js // 悬浮窗组件,可以直接使用来渲染
    │   │   ├── index.module.less
    │   │   ├── showLiveDialog.js // 弹出方法,主要用在IM的红包、答题弹出,包含可以传入的onClose事件
    │   │   └── showPopUp.js // 弹出方法,较为底层,调用之后即可生成一个悬浮窗实例
    │   ├── RTCActBtn // RTC 问答 活动 详情按钮
    │   │   ├── index.js
    │   │   └── index.module.styl
    │   ├── RTCComponents // RTC组件
    │   │   ├── ActionBtn // 上台操作
    │   │   │   ├── index.js
    │   │   │   └── index.styl
    │   │   ├── Panel //  观看者面板
    │   │   │   ├── index.js
    │   │   │   └── index.styl
    │   │   ├── Teacher // 老师
    │   │   │   ├── index.js
    │   │   │   └── index.module.styl
    │   │   ├── Watcher // 观看者
    │   │   │   ├── index.js
    │   │   │   └── index.styl
    │   │   ├── index.js 
    │   │   ├── rtc.js // 互动直播上下台逻辑处理
    │   │   └── utils.js // 互动直播相关工具函数
    │   ├── RTCModal // RTC弹窗提示
    │   │   ├── Modal.js 
    │   │   ├── index.js
    │   │   └── index.module.styl
    │   └── WhiteBoard // 白板组件
    │       ├── index.js
    │       └── index.styl
    ├── consts
    │   ├── globalConst.js // 全局常量,目前仅用来存储直播间sdk实例client
    │   ├── index.js
    │   ├── roles.js // 角色相关常量
    │   ├── rtc.js // RTC相关常量
    │   ├── statusCode.js // 网络请求错误码
    │   ├── subjects.js // 用于跨页面触发事件的rxjs subject实例
    │   ├── tabList.js // 给老师和学生使用的默认tabList
    │   └── urls.js // 载入的sdk的url
    ├── context // 全局context
    │   ├── contextStore.js
    │   └── index.js
    ├── index.ejs // 打包后生成index.html,本地运行时作为根路径指向的文件打开
    ├── index.js // 打包后生成两个.js,是该项目的js主入口
    ├── index.less // 该项目的自定义样式
    ├── theme.less // 主题色所用的Less,修改主题色时修改该文件里的变量
    ├── theme.styl // 主题色所用的stylus,修改主题色时修改该文件里的变量
    ├── pages // 页面组件
    │   ├── IM // 学生端IM相关页面租金啊
    │   │   ├── Activity // 学生端IM红包(活动)页面
    │   │   │   ├── index.js
    │   │   │   ├── index.module.styl
    │   │   │   └── itemList.js 
    │   │   ├── Ask // 学生端答题页面
    │   │   │   ├── askItem.js
    │   │   │   ├── index.js
    │   │   │   ├── index.module.styl
    │   │   │   ├── mAskTemplate.js
    │   │   │   └── mItem.module.styl
    │   │   ├── AskWrapper // 学生端答题页面容器
    │   │   │   ├── consts.js
    │   │   │   └── index.js
    │   │   ├── ChatRoom // 学生端聊天页面
    │   │   │   ├── index.js
    │   │   │   └── index.module.styl
    │   │   ├── GroupActivity // 学生端群发红包页面
    │   │   │   ├── index.js
    │   │   │   ├── index.module.styl
    │   │   │   └── itemList.js
    │   │   ├── LiveGoods // 学生端货架页面
    │   │   │   ├── index.js
    │   │   │   └── index.module.styl
    │   │   ├── Loading // IM的Loading组件(未使用)
    │   │   │   ├── index.js
    │   │   │   └── index.module.styl
    │   │   ├── MessageList // IM的信息列表页面组件
    │   │   │   ├── MessageItem.js
    │   │   │   ├── index.js
    │   │   │   ├── index.module.styl
    │   │   │   ├── item.module.styl
    │   │   │   └── new-item.module.styl
    │   │   ├── RoleControl // 根据角色控制组件显示的组件
    │   │   │   └── index.js
    │   │   ├── SendBox // 聊天框组件
    │   │   │   ├── ToolBar // 工具栏组件
    │   │   │   │   ├── Emojis.js // emoji选择组件
    │   │   │   │   ├── EmojisM.js
    │   │   │   │   ├── Like.js // 点赞组件
    │   │   │   │   ├── Online.js // 展示在线人数组件
    │   │   │   │   ├── index.js
    │   │   │   │   └── index.module.styl
    │   │   │   ├── index.js
    │   │   │   └── index.module.styl
    │   │   ├── SpecialMessage // im特殊信息展示组件
    │   │   │   ├── index.js
    │   │   │   └── index.module.styl
    │   │   ├── common.styl
    │   │   ├── index.js
    │   │   └── index.module.styl
    │   ├── IMTeacher // 讲师、助教、班主任(以下统称教师)端的IM页面
    │   │   ├── Activity // 教师端红包组件
    │   │   │   ├── index.js
    │   │   │   ├── index.module.styl
    │   │   │   └── itemList.js
    │   │   ├── Ask // 教师端问答组件
    │   │   │   ├── askItem.js
    │   │   │   ├── index.js
    │   │   │   └── index.module.styl
    │   │   ├── ChatRoom // 教师端聊天室组件
    │   │   │   ├── index.js
    │   │   │   └── index.module.styl
    │   │   ├── Classes // 教师端在线人数查看组件
    │   │   │   ├── MemberItem.js
    │   │   │   ├── index.js
    │   │   │   └── index.module.styl
    │   │   ├── GroupActivity // 教师端群发红包组件
    │   │   │   ├── index.js
    │   │   │   ├── index.module.styl
    │   │   │   └── itemList.js
    │   │   ├── LiveGoods // 教师端货架组件
    │   │   │   ├── index.js
    │   │   │   ├── index.module.styl
    │   │   │   └── itemList.js
    │   │   ├── Loading // 教师端loading(未使用)
    │   │   │   ├── index.js
    │   │   │   └── index.module.styl
    │   │   ├── MaiXu // 教师端麦序管理组件(打开连麦后才会出现)
    │   │   │   ├── index.js
    │   │   │   ├── index.module.styl
    │   │   │   └── setting.js
    │   │   ├── MessageList // 教师端消息列表组件
    │   │   │   ├── MessageItem.js
    │   │   │   ├── index.js
    │   │   │   ├── index.module.styl
    │   │   │   ├── item.module.styl
    │   │   │   └── new-item.module.styl
    │   │   ├── SendBox // 教师端发送聊天信息组件
    │   │   │   ├── ToolBar // 工具栏组件
    │   │   │   │   ├── Emojis.js // 表情组件
    │   │   │   │   ├── EmojisM.js // 移动端表情组件
    │   │   │   │   ├── HighLight.js // 高亮真实信息(相对于脚本信息)组件
    │   │   │   │   ├── Image.js // 发送图片组件
    │   │   │   │   ├── Like.js // 点赞组件
    │   │   │   │   ├── Mute.js // 禁言组件
    │   │   │   │   ├── Online.js // 显示在线人数组件
    │   │   │   │   ├── index.js
    │   │   │   │   └── index.module.styl
    │   │   │   ├── index.js
    │   │   │   └── index.module.styl
    │   │   ├── SpecialMessage
    │   │   │   ├── index.js
    │   │   │   └── index.module.styl
    │   │   ├── StudentGoods
    │   │   │   ├── index.js
    │   │   │   └── index.module.styl
    │   │   ├── common.styl
    │   │   ├── index.js
    │   │   └── index.module.styl
    │   └── Index
    │       └── index.js
    ├── routes
    │   ├── index.js
    │   └── loadableComponent.js
    ├── store
    │   ├── configureStore.dev.js
    │   ├── configureStore.js
    │   ├── configureStore.prod.js
    │   ├── getters.js
    │   ├── index.js
    │   ├── loader.js
    │   ├── models
    │   │   ├── message.js // 消息相关redux model
    │   │   ├── mic.js // 连麦相关redux model
    │   │   ├── system.js // 系统相关redux model
    │   │   └── user.js // 直播间用户相关redux model
    │   └── utils.js
    └── utils
        ├── EventBus.js // 事件总线 
        ├── IMUtil.js // IM相关事件汇总
        ├── emojiMap.js // im聊天表情
        ├── env.js // 部署环境相关
        ├── index.js 
        ├── message.js // message组件用的相关方法
        ├── messageBuffer.js // 为了应对可能的大量消息做缓冲的方法
        ├── postMessage.js // 为了可能的跨页面消息传输准备的方法
        └── request.js // http请求方法