【发布时间】:2016-03-03 11:51:30
【问题描述】:
我必须构建一个跨平台的点对点应用程序(至少支持 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 上这会导致 RTCPeerConnection 成为 undefined。 我想我错过了什么,因为官方网站提到了 iOS 支持?
【问题讨论】:
标签: android ios cordova webrtc p2p