【问题标题】:Recommended WebRTC Server Configuration for Native app (iOS/Android)?本机应用程序(iOS/Android)的推荐 WebRTC 服务器配置?
【发布时间】:2015-01-31 11:10:01
【问题描述】:

我尝试构建一个服务器以将 webrtc 本机 API 集成到本机应用程序中,但我不确定应该如何配置服务器,例如 ICE/STUN/TURN、信令、媒体服务器等。 据我所知是开源项目:https://github.com/priologic/easyrtc 有人可以给一些建议吗? 谢谢

【问题讨论】:

    标签: webrtc server


    【解决方案1】:

    在 WebRTC 基础架构中,涉及到几件事情。客户端部分用 JavaScript 编写并在浏览器上运行。

    但正如您所说,它是服务器端部分。首先有一个 ICE/STUN/TURN 服务器,如果它位于 NAT 后面,它用于客户端发现其公共 IP 地址。根据您的要求,不必构建/部署您自己的服务器,而是使用已经公开(且免费)的现有服务器 - here 的列表。您还可以部署像Stuntman 这样的开源软件。

    然后是信令部分,由两个客户端用于协商和启动 webrtc 会话。这里没有标准,您有几个选择。

    您可以使用带有 Jingle 扩展的 XMPP 服务器。您可以部署现有的 XMPP 服务器,例如 OpenFireTigase

    您还可以使用 SIP,这是一种在 VoIP 中更常见的协议。您可以使用JAIN-SIPSIP Servlets

    或者您可以使用 websockets 之类的东西开发自己的信号协议。

    我为您提供的服务器端选项是基于 Java 的,但您也可以在其他基础架构中找到类似的选项。

    【讨论】:

    • 感谢您的好意建议,我稍后会尝试。我看到你也在做 WebRTC,所以如果你能分享一些关于如何与服务器协作原生应用程序的信息,我将非常感激。
    • 我想您想在本机应用程序中实现 WebRTC,但使用 PhoneGap 之类的东西。因为最终对于 WebRTC,您将需要一个浏览器。在这种情况下,问题是 Phonegap 仍然使用浏览器并且不支持 iOS:caniuse.com/#search=webrtc。不过好像有个插件:github.com/alongubkin/phonertc,不过我没用过。
    • 我打算在没有PhoneGap帮助的情况下实现原生应用程序,只是考虑使用android / iOS的原生API来考虑性能和UI设计,因为webrtc trunk中已经包含示例,我认为信号流等应该从样本中改变。没有可用的服务器,APP端的开发和调试是不可能的,所以发帖寻求大家的帮助。我仍在努力部署服务器。感谢您的善意建议。
    • 我从未在原生应用中使用过 webrtc。假设它使用与 Web 服务器相同的实现,我怀疑您是否会获得显着的性能提升。
    • 据我所知,信令流程基本相同,但是,以apprtc为例,通话是从创建聊天室开始的,在原生应用的情况下,流程不是那么灵活,所以我认为这种改变是必要的。要唤醒新的状态机,我需要一个新的可用服务器而不是 apprtc。我会想办法解决的,请让我在进行中咨询服务器问题,非常感谢!
    【解决方案2】:

    需要 STUN/TURN。使用公共的(不是绝对稳定的)或从源代码获取 Ubuntu 机器 ans 安装:https://code.google.com/p/rfc5766-turn-server/

    信令是微不足道的。您只需在对等方之间转发消息。只需构建一个简单的聊天服务器。

    媒体服务器完全不同,需要复杂的客户端-服务器配置。

    【讨论】:

    • 感谢您对 STUM/TURN 服务器的建议。我对 SIP 有一些经验,但对媒体服务器不太确定,所以您能否在媒体服务器上提供更多建议。我正在考虑同时支持中继和 p2p 模式。
    • 在我看来,只有当你的基础设施中已经有 SIP 时,你才应该使用它。仅将其用于 WebRTC 信令,我认为这是一种矫枉过正。
    猜你喜欢
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 1970-01-01
    相关资源
    最近更新 更多