fix(webrtc): 更新ICE服务器配置,新增备用TURN服务器并修复iOS模拟器连接问题
- 新增47.242.112.133的STUN/TURN服务器作为备用中继 - Flutter端添加turns: TLS中继,修复iOS模拟器无法获取relay候选的问题 - Web端同步添加新的ICE服务器配置 - 添加.gitignore忽略IDE配置文件
This commit is contained in:
@@ -8,17 +8,26 @@
|
||||
/// `ICE Checking -> Failed`。已修正为与 iOS 原生项目相同的服务器。
|
||||
/// ICE 服务器配置。
|
||||
///
|
||||
/// 与「被控端 Android」完全一致(同一台 TURN 服务器、同一凭据),
|
||||
/// 并额外补充 `?transport=tcp` 的 TURN 候选作为 iOS 模拟器兜底:
|
||||
/// - 被控端已用 `175.178.213.60:3478`(fanhuitong / Fan19961907..)成功产出
|
||||
/// relay 候选(见日志 `relay raddr 175.178.213.60`),故控制端用同一台、
|
||||
/// 同一凭据即可在 TURN 中继相遇;
|
||||
/// - 内网 `192.168.5.224` 在模拟器上不可达,已排除;
|
||||
/// - 模拟器 UDP 不稳,保留 TCP 中继候选。
|
||||
/// 与「被控端 Android」同一台 TURN 服务器(175.178.213.60)、同一凭据
|
||||
/// (fanhuitong / Fan19961907..)。
|
||||
///
|
||||
/// **iOS 模拟器关键修复**:
|
||||
/// 明文 `turn:175.178.213.60:3478` 在 iOS 模拟器(libwebrtc)下不会发起
|
||||
/// RELAY 分配请求,导致控制端本地候选缺失 `typ relay`,两端无公共中继可
|
||||
/// 配对 → candidate-pair=0 → ICE Failed(Android 真机/网页则正常)。
|
||||
/// 改用 `turns:`(TLS over TCP 5349)后,模拟器能稳定拿到 relay 候选。
|
||||
/// 同时保留 udp / tcp 明文项作为降级,以及 STUN 用于 srflx。
|
||||
const List<Map<String, dynamic>> kIceServers = [
|
||||
{'urls': 'stun:stun.l.google.com:19302'},
|
||||
{'urls': 'stun:175.178.213.60:3478'},
|
||||
{
|
||||
// 首选:TLS over TCP,iOS 模拟器下能稳定分配 relay 候选。
|
||||
'urls': 'turns:175.178.213.60:5349',
|
||||
'username': 'fanhuitong',
|
||||
'credential': 'Fan19961907..',
|
||||
},
|
||||
{
|
||||
// 降级:明文 UDP/TCP。
|
||||
'urls': 'turn:175.178.213.60:3478',
|
||||
'username': 'fanhuitong',
|
||||
'credential': 'Fan19961907..',
|
||||
@@ -28,6 +37,12 @@ const List<Map<String, dynamic>> kIceServers = [
|
||||
'username': 'fanhuitong',
|
||||
'credential': 'Fan19961907..',
|
||||
},
|
||||
{'urls': 'stun:47.242.112.133:3478'},
|
||||
{
|
||||
'urls': 'turn:47.242.112.133:3478',
|
||||
'username': 'ttstd',
|
||||
'credential': 'fanhuitong',
|
||||
},
|
||||
];
|
||||
|
||||
/// 信令 WebSocket 默认地址。
|
||||
|
||||
Reference in New Issue
Block a user