Skip to content
This repository has been archived by the owner on May 6, 2022. It is now read-only.

albyho/Tubumu.Meeting.Demo

Repository files navigation

Tubumu.Meeting.Demo

Moved to: https://github.com/albyho/Tubumu.Mediasoup

截图

对该项目实现上的介绍,见:使用 ASP.NET Core 实现 mediasoup 的信令服务器

Tubumu.Meeting.Demo 是基于 mediasoup 实现的视频会议系统 Demo。有别于官方 Demo,本项目有如下特点:

  1. 将 mediasoup 服务端的 Node.js 模块使用 .Net Core 重新进行了实现。

  2. 支持三种服务模式: Open: 进入会议室立即发送音视频供其他用户浏览,并浏览其他用户的音视频。 Pull: 客户端启动时不主动 Produce; 客户端可根据需要 Pull 对端的支持的音视频进行 Consume,而对端按需 Produce。仅 Pull 者会浏览。其他人要浏览可自行 Pull。 Invite: 会议室管理员邀请其他用户发言;其他用户也可以向管理员申请发言。

  3. 客户端使用 Vue 实现。

一、启动服务端

  1. 请打开 mediasoupsettings.json 进行两处修改:
  • 在配置文件中搜索将 AnnouncedIp ,将其值改为本机的局域网或外网的 IP。如果其值为 null 则取本机的其中一个 IPv4 的地址。
  • MediasoupStartupSettings.WorkerPath 节点设置 mediasoup-worker 可执行程序的物理路径。 如果引用了 Tubumu.Mediasoup.Executable 项目则可将该节点注释掉,该项目包含了编译好的 macOS 和 Windows 版的 mediasoup-worker 。
  1. Tubumu.Meeting.Web 目录执行 dotnet run 或者在 Vistual Sudio 打开解决方案启动 Tubumu.Meeting.Web 项目。
> cd Tubumu.Meeting.Web
> dotnet run

备注:如果将 MediasoupStartupSettings.WorkerPath 注释,启动时将自动去 "runtimes/{platform}/native" 目录查找 "mediasoup-worker" 。其中 "{platform}" 根据平台分别可以是:win、osx 和 linux。 详见 Worker.cs 文件中 Worker 类的构造函数。

二、启动前端

tubumu-meeting-demo-client 安装 Node.js 包并运行。

> cd tubumu-meeting-demo-client
> yarn install
> yarn serve

三、打开浏览器

备注:请使用 Chrome、Firefox 或 Edge 浏览器。

因为没有将前端放入 Web 项目中,并且没有使用正式的 TLS 证书,所以先访问一次 https://192.168.x.x:5001/ 。提示不安全时请继续访问。

在同一个浏览器用两个标签或者在两台电脑的浏览器上分别打开 https://192.168.x.x:8080,然后选择不同的 Peer 。提示不安全时请继续访问;提示访问摄像头和麦克风当然应该允许。

关联项目

  1. Tubumu.Utils: 工具类等。
  2. Tubumu.Libuv: Libuv 封装。
  3. Tubumu.Mediasoup: mediasoup 服务端库的 C# 实现。
  4. Tubumu.Mediasoup.Common: 公共类封装。也可供 WinForm 或 WPF 等使用。
  5. Tubumu.Mediasoup.AspNetCore: 主要是 Asp.Net Core 服务注册和中间件。
  6. Tubumu.Mediasoup.Executable: mediasoup-work 可执行程序,目前提供了 macOS 和 Windows 版。可自行编译特定版本,比如 Linux 版。可选。
  7. Tubumu.Meeting.Server: 会议系统的业务实现。
  8. Tubumu.Meeting.Server.Consul: 供 Consul 使用的服务注册等设置。可选。
  9. Tubumu.Meeting.Demo: 简单的 Asp.Net Core 项目。该项目下的 tubumu-meeting-demo-client 为前端实现。

WeChat group

WeChat group