语音聊天
RushChat 支持私有频道的 WebRTC 语音通话功能。
功能概述
语音聊天允许用户在私有频道中进行实时语音通话,支持多人同时在线、屏幕共享等功能。
语音聊天功能概览
功能特性
多人语音通话
- ✅ 支持多人同时在线(无固定上限)
- ✅ 实时音频传输
- ✅ 低延迟通信
- ✅ WebRTC 点对点通信
语音控制
- ✅ 静音/取消静音
- ✅ 音量控制
- ✅ 麦克风开关
- ✅ 房主可以静音其他成员
- ✅ 房主可以踢出成员
屏幕共享
- ✅ 支持屏幕共享
- ✅ 实时共享状态通知
- ✅ 其他成员可以看到共享状态
权限管理
- ✅ 语音聊天房主权限(独立于频道房主)
- ✅ 频道房主自动接管语音聊天房主权限
- ✅ 房主可以静音特定用户
- ✅ 房主可以踢出语音房间成员
- ✅ 房主可以邀请其他用户加入语音聊天
- ✅ 房主离开时自动转移权限
邀请功能
- ✅ 语音聊天房主可以邀请其他用户
- ✅ 被邀请用户会收到通知
- ✅ 支持接受/拒绝邀请
使用方式
加入语音房间
- 进入私有频道
- 点击"加入语音"按钮
- 允许浏览器访问麦克风
- 自动加入语音房间
- 系统会通知频道内其他成员
离开语音房间
- 点击"离开语音"按钮
- 或关闭频道页面
- 自动断开连接
- 如果用户是语音聊天房主,权限会自动转移给其他参与者
邀请其他用户
- 作为语音聊天房主,点击"邀请"按钮
- 选择要邀请的用户
- 被邀请用户会收到通知
- 被邀请用户可以选择接受或拒绝
管理语音房间
- 静音成员:房主可以点击成员列表中的静音按钮
- 踢出成员:房主可以踢出不活跃或违规的成员
- 查看状态:可以查看当前语音聊天的参与者列表
技术实现
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- 查询语音聊天状态