更新记录

1.2(2026-08-24) 下载此版本

屏幕共享功能兼容安卓 苹果 WEB端


平台兼容性

uni-app(5.06)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟

哟通会议(YooTong Meeting)功能介绍

项目概述

哟通会议是一款支持多端的实时视频会议应用,提供会议室创建、音视频通话、屏幕共享、实时聊天、VIP会员、余额充值等完整功能。系统基于 WebRTC + SRS 流媒体服务器架构,支持 Android、iOS(H5)和 Web 管理后台三端协同工作。


系统架构

项目由五个核心组件组成:

组件 目录 技术栈 说明
主服务端 server Node.js + Koa2 + MySQL + WebSocket 提供 RESTful API 和 WebSocket 信令服务
管理后台 adminclient Vue 2 + Vite + Element UI 系统管理控制台(Web 端)
Android 客户端 ntmetand UniApp Vue 2 + WebView 安卓端 App,内嵌 HTML 实现音视频
iOS 客户端 ntmetios UniApp Vue 2 苹果端 H5 应用
iOS 屏幕共享服务 iosserver Node.js + WebSocket + FFmpeg 接收 iOS 屏幕帧并推流到 SRS

核心功能

1. 用户系统

  • 自动注册/登录:基于设备唯一标识(deviceId)自动完成注册和登录,无需手动输入账号密码
  • 用户信息管理:修改昵称、上传头像(自动生成 DiceBear 头像作为默认头像)
  • 用户编号:系统自动生成 6 位唯一用户编号
  • 角色体系:普通用户 / 管理员
  • 账户余额:用于创建会议室消费
  • VIP 会员:按会议室类型购买 VIP,享受对应类型会议室免费创建权益

2. 会议室系统

  • 会议室类型:支持小型会议(5人)、中型会议(10人)、大型会议(20人)等多种规格
  • 创建会议室:选择类型 → 校验 VIP 或余额 → 自动扣费 → 生成 6 位会议室编号
  • 加入会议室:输入会议室编号 → 无密码直接进入 / 有密码需输入密码
  • 公开会议室:可在首页公开列表展示,供用户直接加入
  • 会议室设置
    • 音频开关(允许/禁止成员开启音频)
    • 视频开关(允许/禁止成员开启视频)
    • 屏幕共享开关
    • 密码修改
  • 成员管理
    • 实时成员列表(显示音视频状态、屏幕共享状态)
    • 拥有者可踢人、禁音、禁视频
    • 成员加入/离开实时通知
  • 横竖屏自适应:自动识别设备方向,适配对应布局

3. 音视频通话

  • WebRTC 推流:基于 SRS 4.0 旧版 API(/rtc/v1/publish/)实现 WebRTC 推流
  • WebRTC 拉流:基于 SRS 4.0 旧版 API(/rtc/v1/play/)实现 WebRTC 拉流
  • SRS 流媒体服务器:线上地址 rtc.lexuntongai.com,应用名 live
  • 流命名规则mettingroomsc_{meetingId}/{userId}(普通音视频流)
  • ICE 连接管理:非阻塞监控 ICE 连接状态,支持自动重连
  • 音频独立播放:所有用户音频同时播放,支持静音控制
  • 视频切换:点击用户头像切换大视频显示,长按弹出控制菜单(仅拥有者)
  • Android WebView 方案:安卓端通过 WebView 嵌套本地 HTML 实现音视频和信令,原生与 HTML 通过 evalJS + uni.postMessage 通信

4. 屏幕共享

  • 仅视频共享:屏幕共享仅传输视频,不传输音频
  • 音频流保留:发起屏幕共享时,原音视频流继续推流,其他用户仍可拉取音频
  • 视频流切换:其他用户观看该用户时,视频画面切换为屏幕共享画面
  • iOS 特殊方案
    • iOS 端通过 getDisplayMedia 捕获屏幕画面
    • 以 15fps 捕获 JPEG 帧通过 WebSocket 发送到 iosserver
    • iosserver 通过 FFmpeg 将图片帧编码为 H.264 并推送到 SRS(RTMP)
    • 其他用户通过 WebRTC 拉流观看屏幕共享
  • 信令通知:开始/停止屏幕共享通过 WebSocket 信令实时广播给会议室所有成员

5. 实时聊天

  • 文字聊天:支持在会议室内发送文字消息
  • 实时广播:通过 WebSocket 实时推送聊天消息
  • 消息历史:支持查询历史聊天记录
  • 临时存储:聊天数据仅临时存储在内存变量中,不持久化到数据库

6. 支付系统

  • 余额充值:多种充值模板可选(10元/50元/100元/200元/500元),含赠送金额
  • VIP 购买:按会议室类型购买 VIP 会员(月度/季度/年度)
  • 创建会议室扣费:非 VIP 用户创建会议室时从余额扣费
  • 订单管理:完整的支付订单记录和状态追踪

7. 管理后台

  • 数据看板:用户数、会议室数、订单数等核心指标统计
  • 用户管理:用户列表、余额调整、启用/禁用用户、发放 VIP
  • 会议室类型管理:增删改查会议室类型(名称、人数上限、价格)
  • 充值模板管理:增删改查充值模板(金额、赠送、标题、描述)
  • VIP 模板管理:增删改查 VIP 模板(时长、价格、原价)
  • 订单管理:查看所有支付订单记录
  • 会议室列表:查看所有会议室及状态

技术特性

通信架构

  • RESTful API:HTTP 接口处理会议室管理、用户管理、支付等业务
  • WebSocket 信令:实时处理用户加入/离开、推流通知、聊天消息、屏幕共享、成员控制
  • WebSocket 断线重连:自动检测连接状态并重连

安全机制

  • JWT 认证:基于 JSON Web Token 的用户身份认证
  • Token 自动刷新:客户端检测到 token 过期时自动重新登录
  • 请求队列:未认证请求自动排队,登录完成后统一刷新
  • 接口分级:公开接口(会议室列表、类型查询等)无需认证,业务接口需认证

流媒体

  • SRS 服务器:线上部署,支持 WebRTC 推拉流和 RTMP 推流
  • STUN 服务器stun:stun.l.google.com:19302rtc.lexuntongai.com:3478
  • FFmpeg 编码:iOS 屏幕共享图片帧通过 FFmpeg 编码为 H.264 实时推流

数据库设计

表名 说明
users 用户表(设备ID、编号、昵称、余额、VIP到期时间、状态、角色)
meeting_types 会议室类型表(名称、最大人数、价格)
meetings 会议室表(创建者、类型、名称、编号、密码、音视频开关、状态)
meeting_members 会议成员表(会议室ID、用户ID、音视频状态、屏幕共享状态、加入/离开时间)
chat_messages 聊天消息表(会议室ID、发送者ID、内容、类型)
payment_orders 支付订单表(用户ID、订单号、金额、类型、状态)
recharge_templates 充值模板表(金额、赠送、标题、描述)
vip_templates VIP 模板表(会议室类型、时长、价格、原价)
user_vip 用户 VIP 表(用户ID、会议室类型ID、到期时间)
screen_share_sessions 屏幕共享会话表(会议室ID、用户ID、流ID、RTMP地址、状态)
system_config 系统配置表(键值对配置)

部署信息

  • 服务端 APIhttps://api.lexuntongai.com:3001
  • WebSocketwss://api.lexuntongai.com:3001
  • SRS 流媒体https://rtc.lexuntongai.com
  • iOS 屏幕共享服务https://api.lexuntongai.com:3000
  • SRS RTMP 推流rtmp://rtc.lexuntongai.com/live
  • 头像服务https://api.lexuntongai.com:3001/avatar

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。