GithubHelp home page GithubHelp logo

sparkcus / wilearning Goto Github PK

View Code? Open in Web Editor NEW

This project forked from wistingcn/wilearning

0.0 0.0 0.0 17.42 MB

Multiparty meeting&e-learning using mediasoup, webrtc and angular

Home Page: https://rtc.liweix.com/admin

TypeScript 78.59% Shell 0.38% JavaScript 0.71% HTML 12.45% CSS 7.86%

wilearning's Introduction

English

演示系统

WiLearning

WiLearning 是一个开源、免费的在线学习及视频会议系统。WiLearning音视频模块使用了WebRTC技术,服务器端使用Typescript + Nodejs + MediaSoup开发,Web端使用Angular + Angular Material,目前具备以下功能:

  • 多人视频会议 - 进行多人实时音视频及文字互动
  • 共享桌面 - 共享自己的桌面内容
  • 共享媒体 - 共享自己电脑上的音频或视频
  • 共享课件 - 共享pdf文件,pdf文件在客户端自动转码
  • 实时画笔 - 课件批注、添加内容,并共享给其他参与人
  • 视频滤镜、设置logo、公告等功能
  • 同时支持多个房间 - 可支持任意多个房间,每个房间参与人数不限定,最终取决于硬件条件
  • 多语言支持 - 目前支持中文和英文,可扩展
  • 稳定 - 切换网络时自动恢复
  • 独立部署 - 安装简单,对外部工具没有依赖,可以独立部署于Linux/Mac服务器上
  • 全终端支持 - 支持PC/Android/IOS平台,自动适配Pad平板电脑

安装

  • 服务器及客户端代码支持部署在Linux/Mac操作系统,要求Nodejs版本大于V12.
  • 支持在Windows/Linux/Mac等操作系统使用Chrome浏览器打开Web客户端

安装依赖包

npm install -g cnpm
cnpm i

构建所有

./build.sh all

构建单个子系统

./build.sh [server/web/admin]
# 编译后的代码位于dist目录

运行

代码里提供了示例SSL证书,该证书对应的域名是rtc.liweix.com,实际运行时,请提供自己的证书,证书要与访问域名一致.

进入dist目录

cd dist

方法一: 运行server.js

node server.js --cert ../certs/rtc.liweix.com.pem --key ../certs/rtc.liweix.com.key

# 如果获取公网IP地址失败,则可以使用--publicIp 手动提供公网IP地址
node server.js --cert ../certs/rtc.liweix.com.pem --key ../certs/rtc.liweix.com.key --publicIp x.x.x.x

方法二: 直接运行start.sh(使用默认证书)

./start.sh

开启BBR拥塞控制

服务器端执行(linux kernel > 4.9):

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

浏览器访问

WiLearning 支持Chrome、FireFox、Safari浏览器,推荐使用最新版本的Chrome浏览器。

  • 在浏览器中打开admin地址
https://[你的公网IP地址]/admin/
  • 在Admin界面创建房间,在链接中找到主持人和参与人的地址,主持人可以开始/结束会议
  • 多人登录到同一个房间即可开始视频会议
  • 系统截图 Admin 截图 Web 截图

错误排查

  • Demo部署环境:Ubuntu 18.04.4 LTS, 在该环境测试通过
  • 由于依赖包的版本可能会经常更新,所以建议更新代码时,在新的目录下重新拉取源代码,重新安装依赖包。避免在原目录下使用git pull,这样会导致代码与依赖包版本不一致
  • WebRTC处于安全性考虑,要求必须使用HTTPS,当自己使用IP地址访问时会报错
  • 项目提供的是rtc.liweix.com域名的HTTPS证书,可以使用该证书进行测试,在客户端修改/etc/hosts,将该域名指向自己的服务器地址即可
  • 推荐使用自己的域名和证书,在aliyun可以申请免费证书
  • 当访问出现问题时,在浏览器打开开发者工具,在控制台(Console)里查看出错原因
  • 未能解决的问题,请提交issue

支持WiLearning

毫无疑问,WiLearning的成长需要你的支持,你可以通过以下方式支持WiLearning:

  • 使用WiLearning,提Bug以及改进建议
  • 提需求。我们不一定会接受所有需求,但所有需求都会认真分析并给予回复
  • 将WiLearning推荐给你的同事或老板,并为WiLearning加颗星

Roadmap

我们的愿景是打造一个面向未来的远程办公、远程教学私有云系统,它应该具备以下特性:

  • 易于部署和使用
  • 高质量音视频通话,能够兼容多种网络
  • 提供一套协同工具
  • 在实时音视频中整合VR/AR,提供超出现实的视觉效果

技术交流

加QQ群: 1043056267, 验证信息里请注明WiLearning

wilearning's People

Contributors

linewei avatar wistingcn avatar

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.