mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-01-29 00:51:53 +08:00
feat(webrtc): 添加公共ICE服务器支持和优化HID延迟
- 重构ICE配置:将TURN配置改为统一的ICE配置,支持STUN和多TURN URL - 添加公共ICE服务器:类似RustDesk,用户留空时使用编译时配置的公共服务器 - 优化DataChannel HID消息:使用tokio::spawn立即处理,避免依赖webrtc-rs轮询 - 添加WebRTCReady事件:客户端等待此事件后再建立连接 - 初始化时启动音频流,确保WebRTC可订阅 - 移除多余的trace/debug日志减少开销 - 更新前端配置界面支持公共ICE服务器显示
This commit is contained in:
@@ -187,6 +187,18 @@ pub enum SystemEvent {
|
||||
device: String,
|
||||
},
|
||||
|
||||
/// WebRTC is ready to accept connections
|
||||
///
|
||||
/// Sent after video frame source is connected to WebRTC pipeline.
|
||||
/// Clients should wait for this event before attempting to create WebRTC sessions.
|
||||
#[serde(rename = "stream.webrtc_ready")]
|
||||
WebRTCReady {
|
||||
/// Current video codec
|
||||
codec: String,
|
||||
/// Whether hardware encoding is being used
|
||||
hardware: bool,
|
||||
},
|
||||
|
||||
/// Stream statistics update (sent periodically for client stats)
|
||||
#[serde(rename = "stream.stats_update")]
|
||||
StreamStatsUpdate {
|
||||
@@ -485,6 +497,7 @@ impl SystemEvent {
|
||||
Self::StreamDeviceLost { .. } => "stream.device_lost",
|
||||
Self::StreamReconnecting { .. } => "stream.reconnecting",
|
||||
Self::StreamRecovered { .. } => "stream.recovered",
|
||||
Self::WebRTCReady { .. } => "stream.webrtc_ready",
|
||||
Self::StreamStatsUpdate { .. } => "stream.stats_update",
|
||||
Self::StreamModeChanged { .. } => "stream.mode_changed",
|
||||
Self::HidStateChanged { .. } => "hid.state_changed",
|
||||
|
||||
Reference in New Issue
Block a user