跳转至

语音聊天

RushChat 支持私有频道的 WebRTC 语音通话功能。

功能概述

语音聊天允许用户在私有频道中进行实时语音通话,支持多人同时在线、屏幕共享等功能。

语音聊天功能概览

功能特性

多人语音通话

  • ✅ 支持多人同时在线(无固定上限)
  • ✅ 实时音频传输
  • ✅ 低延迟通信
  • ✅ WebRTC 点对点通信

语音控制

  • ✅ 静音/取消静音
  • ✅ 音量控制
  • ✅ 麦克风开关
  • ✅ 房主可以静音其他成员
  • ✅ 房主可以踢出成员

屏幕共享

  • ✅ 支持屏幕共享
  • ✅ 实时共享状态通知
  • ✅ 其他成员可以看到共享状态

权限管理

  • ✅ 语音聊天房主权限(独立于频道房主)
  • ✅ 频道房主自动接管语音聊天房主权限
  • ✅ 房主可以静音特定用户
  • ✅ 房主可以踢出语音房间成员
  • ✅ 房主可以邀请其他用户加入语音聊天
  • ✅ 房主离开时自动转移权限

邀请功能

  • ✅ 语音聊天房主可以邀请其他用户
  • ✅ 被邀请用户会收到通知
  • ✅ 支持接受/拒绝邀请

使用方式

加入语音房间

  1. 进入私有频道
  2. 点击"加入语音"按钮
  3. 允许浏览器访问麦克风
  4. 自动加入语音房间
  5. 系统会通知频道内其他成员

离开语音房间

  1. 点击"离开语音"按钮
  2. 或关闭频道页面
  3. 自动断开连接
  4. 如果用户是语音聊天房主,权限会自动转移给其他参与者

邀请其他用户

  1. 作为语音聊天房主,点击"邀请"按钮
  2. 选择要邀请的用户
  3. 被邀请用户会收到通知
  4. 被邀请用户可以选择接受或拒绝

管理语音房间

  1. 静音成员:房主可以点击成员列表中的静音按钮
  2. 踢出成员:房主可以踢出不活跃或违规的成员
  3. 查看状态:可以查看当前语音聊天的参与者列表

技术实现

WebRTC

使用 WebRTC 技术实现点对点通信:

  • ✅ 低延迟音频传输
  • ✅ 高质量音频编解码
  • ✅ 点对点直连(减少服务器负载)
  • ✅ 自动 NAT 穿透

信令服务器

使用 WebSocket 作为信令服务器:

  • ✅ 建立 WebRTC 连接
  • ✅ 交换 SDP(Session Description Protocol)
  • ✅ 交换 ICE 候选(NAT 穿透)
  • ✅ 实时状态同步
  • ✅ 信令数据转发

状态管理

  • ✅ 活跃语音聊天记录
  • ✅ 参与者列表管理
  • ✅ 语音聊天房主管理
  • ✅ 自动权限转移
  • ✅ 状态查询接口

事件系统

支持以下 WebSocket 事件:

  • voice:join - 加入语音聊天
  • voice:leave - 离开语音聊天
  • voice:signal - WebRTC 信令转发
  • voice:mute - 静音操作
  • voice:kick - 踢出操作
  • voice:invite - 邀请加入
  • voice:invite_reject - 拒绝邀请
  • voice:screen_share - 屏幕共享状态
  • voice:status - 查询语音聊天状态

相关文档