使用OWN Server在iOS中进行WebRTC集成

时间:2016-06-07 06:34:37

标签: javascript ios iphone webrtc

是否可以将WebRTC概念集成到iOS应用程序中,而不是在我们自己的服务器URL中使用第三方API。
如果有可能,那么告诉我如何使用Backend API配置连接,或者我们可以从我们的应用程序本身配置它。

我们的Web团队已将其集成到浏览器中(使用Java Script),现在我们正在尝试将该概念集成到iOS中。

2 个答案:

答案 0 :(得分:1)

在JS中它更容易,因为所有示例代码都已由Google提供。虽然涉及iOS,但您的服务器必须提供WebRTC所需的信令,因为它不包含它。您可以考虑使用WebSockets/XMPP/SIPserver。我可以推荐的第一件事就是在谷歌上搜索libjingle库,因为它已经为所有架构编译了WebRTC。

答案 1 :(得分:1)

您可以创建自己的signaling server以允许客户互相协商电话。您希望如何做到这一点取决于您,但我们使用node.js。我们的应用通过node.js server与我们的TCP socket相关联。

当我们的应用程序拨打电话时,它会向我们的signaling server发送创建信号。然后,服务器向被叫方发送voip push(当用户登录时,应用程序注册voip push notifications并将其device id发送给signaling server。被叫方连接到服务器,客户端可以开始发送要约并回答SDPICE candidates

这是我们用于调用WebRTC的{​​{1}}部分的类。您可以删除项目中的这些文件,并在其上扩展<Link removed>并实施viewcontroller。对于delegation,您必须设计自己的系统,但任何体面的程序员都应该能够创建一个简单的signaling

要将signaling server添加到您的项目,我建议cocoapods。然后使用此选项添加library

library

或者您可以按照提供的the guide自行编译target 'your_project_here' do pod 'libjingle_peerconnection' post_install do |installer_representation| installer_representation.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO' config.build_settings['VALID_ARCHS'] = ['armv7', 'arm64'] end end end end

您可以阅读有关使用library本地here的更多信息。图表显示了您必须实现信号的顺序。当客户端A呼叫客户端B时,情况并非如此,基本上你可以这样做:

  • A创建peerconnection factory
  • A创建对等连接
  • A创建本地媒体流
  • A创建商品SDP
  • A将要约设为本地SDP
  • A开始生成ICE候选人
  • A将ICE候选人送到B来*
  • A将要约发送给B *
  • B创建对等连接工厂
  • B创建对等连接
  • B将要约设为远程SDP
  • B创建本地媒体流
  • B创建答案SDP
  • B将答案设置为本地SDP
  • B开始生成ICE候选人
  • B将ICE候选人送到A来*
  • B将答案发送给A *
  • A将答案设置为远程SDP

*如果您使用我链接的课程,您只需担心这些要点

请注意,此课程只是一个起点,它不允许多用户通话(只有2个同伴)并且没有太多功能。