Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用webRTC的Cordova点对点应用程序_Android_Ios_Cordova_Webrtc_P2p - Fatal编程技术网

Android 使用webRTC的Cordova点对点应用程序

Android 使用webRTC的Cordova点对点应用程序,android,ios,cordova,webrtc,p2p,Android,Ios,Cordova,Webrtc,P2p,我必须构建一个跨平台的点对点应用程序(至少支持iOS和Android)。为此,我使用科尔多瓦。目前,我可以使用ZeroConf插件进行服务发现。现在我想在discovery上建立点对点连接。 一个同等的应用程序已经用钛制成。发现后,它使用套接字连接到发现的机器 /* Service Discovery resulting in an IP address and port number ... */ socket = Titanium.Network.createTCPSock

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

一个同等的应用程序已经用钛制成。发现后,它使用套接字连接到发现的机器

/*
    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,因此我需要钛合金版本中使用的套接字的替代品。使用中间服务器不是一个选项(仅用于发送信号,不用于消息交换)

我的导师建议使用webRTC,因为它是一个简单的标准JavaScriptAPI,提到它可以在iOS上使用。我实现了它,并在浏览器中进行了测试,效果非常好

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

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

这在浏览器中起作用,但在iOS上会导致
rtpeerconnection
处于
未定义状态我想我遗漏了什么,因为官方网站提到了iOS支持?

Safari不支持WebRTC,无论是MacOS还是iOS

引用的文章()指的是在iOS上进行的本机开发,我认为它使用了实现WebRTCAPI的库或SDK

使用Cordova Framework,您不能在本机依赖启用WebView WebRTC的WebView,但必须采用Cordova WebView的特定插件或子节点(例如)


在iOS上,一个实现w3c WebRTC API的插件正在运行,但它在元素实现上有一些挂起和限制。

好的,这就是我的想法,谢谢!这肯定不会让事情变得更容易。。我看到了Cordova的WebRTC插件,将尝试一下。是否存在与iOS和Android兼容的webRTC插件?附带说明:这意味着不可能在iOS、Android和pc之间使用具有互操作性的webRTC?(这超出了我的任务范围,但纯粹出于好奇)。这就是我所说的插件:我个人开发了一个Cordova/Ionic应用程序,使用Crosswalk for Android版本,使用Cordova插件iosrtc for iOS版本。有几个cordova WebRTC插件,但每个插件都有一个限制。由于WebRTC,不同平台上不同设备之间的互操作性是可能的:我的应用程序(web、Android和iOS)成功地在它们之间交互。问题是我必须将我的工作集成到一个大项目中,其想法是,之后整个项目不必与Cordova(或Ionic)绑定但可以使用钛合金版本或Cordova版本的网络部件运行。我担心我会将整个项目绑定到Cordova,因此,由于我只需要能够发送文本,一个简单的插件(理想情况下与iOS和Android兼容)提供数据通道将很好,但似乎不存在。对不起,我没有注意到。。。WebRTC目前还不是一项成熟的技术。请记住,其他标准正在开发中()我尝试了iosrtc,它工作得很好,感谢分享:)