适用于 iOS iPhone 的 ICE、STUN、TURN 库

Posted

技术标签:

【中文标题】适用于 iOS iPhone 的 ICE、STUN、TURN 库【英文标题】:ICE, STUN, TURN library for iOS iPhone 【发布时间】:2011-07-12 10:53:18 【问题描述】:

我需要在两个用户之间建立 P2P UDP 和 TCP 连接。它们都在 NAT 后面。一点点研究让我了解了 STUN、TURN 和 ICE。

    是否有任何支持相同的开源 ios(库)?

    iPhone 中的 FaceTime 也使用 ICE、STUN、TURN 到 NAT 遍历,那么 iOS SDK 是否公开了这些 API?

    我在 resiprocate 源代码 (www.resiprocate.org) 中找到了 nICRr 代码,我可以在 Mac OS X 上测试 STUN 部分。有人试过在 iOS 4.0 或更高版本上使用相同的吗?

谢谢, 罗德尼

【问题讨论】:

【参考方案1】:

1> 使用 PJSIP,它拥有您请求的所有项目,现在可以在 iOS 上正确构建

2> 没有

3> 我不知道,但 PJSIP 有 STUN、TURN 和 ICE 库及其模块化

【讨论】:

嗨,托尼,你能指出一些我可以在 ios 中实现转冰和眩晕的代码 如果您正在构建一个您不想开源的商业应用程序 - PJSIP 至少要花费您 1000 美元。在这种情况下,我建议使用 reSIProcate。 PJSIP 2.x 不再支持 iOS 上的视频 :(【参考方案2】:

它不是开源的,但我们整合了一个名为 IceLink 的库,该库使用 ICE/STUN/TURN 和完整的 NAT 遍历进行 P2P 流式传输。它具有适用于 iOS、Mac 等的客户端 SDK。

【讨论】:

【参考方案3】:

以下是我自己查询的答案 是否有任何支持相同的开源 iOS(库)? - 是的,resiprocate 源代码可用,它有更好的文件夹。它可以通过一些努力编译到mac os x和ios iPhone 中的 FaceTime 也使用 ICE、STUN、TURN 到 NAT 遍历,那么 iOS SDK 是否公开了这些 API? - 不 我在 resiprocate 源代码 (www.resiprocate.org) 中找到了 nICRr 代码,我可以在 Mac OS X 上测试 STUN 部分。有没有人尝试在 iOS 4.0 或更高版本上使用相同的? - 它可以很容易地重新编译到ios4

【讨论】:

嗨 Rohit,我正在使用 github.com/coturn/coturn 库来创建客户端库。你能指导我如何从这个项目构建一个 .a 或 .so 文件吗?我想从上述链接中的 [ turnclient ] => src / client / path 在 Mac Os 中创建一个库。 我在 10 年前做过,为 android 和 iOS 构建了库。我采用了开源并进行了特定于设备的更改,以制作适用于 android 和 iOS 的库。

以上是关于适用于 iOS iPhone 的 ICE、STUN、TURN 库的主要内容,如果未能解决你的问题,请参考以下文章

STUN, TURN, ICE介绍

ICE vs STUN vs TURN

如何使用 Stun 和 ice4j 接收公共 IP 和端口

什么会在没有指定 STUN 服务器的本地 webRTC 应用程序上生成 ICE 候选?

WebRTC STUN 服务器如何反馈 SDP 和 ICE 候选人?

WebRTC:ICE、STUN 和 TURN,但我不能只使用我的 SignalR.NET 连接吗?