使用webRTC进行Cordova点对点应用

时间:2016-03-03 11:51:31

标签: android ios cordova webrtc p2p

我必须构建一个跨平台的点对点应用程序(至少支持iOS和Android)。为此,我使用Cordova。目前我可以使用ZeroConf插件进行服务发现。现在我想在发现时建立点对点连接。

使用Titanium已经制作了一个等效的应用程序。发现后,它使用套接字连接到发现的计算机。

/*
    Service Discovery resulting in an IP address and port number
    ...
*/

socket = Titanium.Network.createTCPSocket({
    hostName: discoveredHostName,
    port: discoveredPort,
    mode: Titanium.Network.READ_WRITE_MODE
});
...
socket.connect();

但是,我需要将应用程序翻译为Cordova,因此我需要替代Titanium版本中使用的那些套接字。使用中间服务器不是一种选择(仅用于发送信号)使用,而不是用于消息交换)。

我的导师建议使用webRTC,因为它是一个简单的标准Javascript API,提到它可以在iOS上使用official website which metions iOS support。我实现了它,在浏览器中测试它,它就像一个魅力。

但是,在iOS上测试时,webRTC不起作用

var RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection || window.msRTCPeerConnection;

这适用于浏览器,但在iOS上,这会导致RTCPeerConnectionundefined我认为我遗漏了一些东西,官方网站提到iOS支持?

1 个答案:

答案 0 :(得分:4)

Safari不支持 MacOS iOS

请参阅http://caniuse.com/#search=webrtc

引用的文章(https://webrtc.org/native-code/ios/)是指iOS上的本机开发,我认为是使用实现WebRTC API的库或SDK。

使用Cordova Framework,您无法在启用WebView WebRTC的情况下本地使用,但您必须采用特定的插件或将Cordova WebView与Crosswalk(例如)下载。

在iOS上,实现w3c WebRTC API的插件是iosrtc,但它有一些issues待定和video元素实现的一些限制。