Javascript 在iOS中与自己的服务器集成WebRTC
是否有可能在iOS应用程序中集成WebRTC概念,而在我们自己的服务器URL中不使用第三方APIJavascript 在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 。我可以推荐的第一件事是用谷
如果可能,请告诉我如何使用后端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个用户。