Javascript 在iOS中与自己的服务器集成WebRTC

Javascript 在iOS中与自己的服务器集成WebRTC,javascript,ios,iphone,webrtc,Javascript,Ios,Iphone,Webrtc,是否有可能在iOS应用程序中集成WebRTC概念,而在我们自己的服务器URL中不使用第三方API如果可能,请告诉我如何使用后端API配置连接,或者可以从应用程序本身配置连接 我们的Web团队已经为浏览器集成了它(通过使用Java脚本),现在我们正在尝试将这个概念集成到iOS中。在JS中更容易,因为所有示例代码都已经由Google提供。说到iOS,您的服务器必须提供WebRTC所需的信号,因为它不包括它。可以考虑使用 WebSoCupps/XMPP/SIPServer 。我可以推荐的第一件事是用谷

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


我们的Web团队已经为浏览器集成了它(通过使用Java脚本),现在我们正在尝试将这个概念集成到iOS中。

在JS中更容易,因为所有示例代码都已经由Google提供。说到iOS,您的服务器必须提供WebRTC所需的信号,因为它不包括它。可以考虑使用<代码> WebSoCupps/XMPP/SIPServer 。我可以推荐的第一件事是用谷歌搜索该库,因为它已经为所有架构编译了WebRTC。

您可以创建自己的
信令服务器
,以允许客户端相互协商呼叫。如何做到这一点取决于您,但我们使用
node.js
来实现这一点。我们的应用程序通过
TCP套接字连接到我们的
node.js服务器

当我们的应用程序拨打电话时,它会向我们的
信令服务器发送一个创建信号。然后,服务器向被叫方发送
voip推送
(当用户登录时,应用程序注册
voip推送通知
,并将其
设备id
发送到
信令服务器
)。被叫方连接到服务器,客户端可以开始发送报价和应答
SDP
ICE候选者

这是我们用于调用
WebRTC
部分的类。您可以将这些文件放在项目中,并在其上扩展
viewcontroller
,然后实现
委派。对于
信令
您必须设计自己的系统,但是任何一个优秀的程序员都应该能够创建一个简单的
信令服务器

要将
添加到项目中,我建议。然后使用此选项添加

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
或者您也可以按照提供的方法自己编译

您可以阅读有关本机使用
WebRTC
的更多信息。图表显示了您必须执行信号的顺序。这并不难,当客户A给客户B打电话时,基本上你会:

  • A创建peerconnection工厂
  • 创建对等连接
  • 创建本地媒体流
  • 创建报价SDP
  • A将报价设置为本地SDP
  • A开始生成ICE候选者
  • A向B发送ICE候选人,因为他们来了*
  • A将报价发送给B*
  • B创建peerconnection工厂
  • B创建对等连接
  • B将报价设置为远程SDP
  • B创建本地媒体流
  • B创建一个应答SDP
  • B将答案设置为本地SDP
  • B开始生成ICE候选者
  • B向A发送ICE候选人,因为他们来了*
  • B将答案发送给A*
  • A将答案设置为远程SDP
*如果你使用我链接的类,你只需要担心这些点


请注意,该类只是一个起点,它不允许多用户呼叫(仅2个对等方),也没有太多功能。

如果我想在本地网络中的两个设备之间创建p2p连接,而不使用信令服务器,您的
BWRTCViewController
是否可以工作?@SashaKid您将始终需要某种信令,但不一定是信令服务器。如果您在本地网络上,则可以通过套接字将SDP和ICE候选者发送到硬编码的IP地址,而无需服务器。如果你想在IP地址改变时继续使用相同的代码,你需要一个服务器。谢谢!你能给我一些关于它的链接吗?因为我还没有找到描述“完整”步骤的地方。我只知道如何使用
libjingle_peerconnection
,不知道缺少信令步骤:-)@SashaKid没有任何链接,您必须打开一个套接字(以您喜欢的任何方式),当调用sendSessionDescription和sendICECandidate方法时,您将数据发送到另一个对等方。您可以在创建套接字时在线搜索一些源。您确定它不允许多用户呼叫(仅2个对等方)并且没有太多功能吗。我的应用程序中需要多用户网络聊天视图。最多可以共享19个用户的URL。这意味着聊天最多包含20个用户。