我想构建一个允许P2P通信的应用程序(发送消息,交换文件),我用phonegap构建应用程序,因为我想要我的应用程序跨平台。
我知道WebRTC允许实时通信,但浏览器并不支持它。我还发现了phonegap的Websocket插件,这个我满意的部分要求,我可以使用这个发送消息,但是如果我使用websocket将文件从A发送到B,我猜所有的流量都会通过我的服务器,这对服务器来说是一个压力而且我不希望我的服务器承载如此多的流量。我无法在A和B之间建立点对点连接。
有没有在手机上进行P2P通信?任何解决方案也是受欢迎的。
答案 0 :(得分:0)
您可以使用Flash或最近的WebRTC进行对等连接。目前,这些是您可以使用的唯一选项,因为WebSockets只能连接到服务器。
由于大多数手机不支持Flash(仅支持Android< 4.0),因此您只能使用WebRTC。但WebRTC目前仅适用于Chrome测试版,因此您仍然可以使用跨大多数平台/设备无法使用的跨平台应用。
您必须通过服务器(WebSockets或HTTP)来增加可以覆盖的设备数量。
答案 1 :(得分:0)
您可以使用Boost asio套接字构建自己的P2P应用程序。但你需要为Android NDK和IOS构建它。
在得出结论之前,请先看看这些链接
Official "Boost library" Support for Android and iOS?
Limitations to using (Boost) Asio with Android NDK
http://beta.boost.org/development/tests/trunk/developer/summary.html
http://www.codeproject.com/Tips/555070/Boost-vs-OSX-iOS-XCode
希望有所帮助
答案 2 :(得分:0)
在WebRTC上,根据我的经验,你可以在chrome上使用RTCDataChannel,使用这包括编写大量可靠的代码,因为数据包无序到达或者如果发送得太快则完全没有。 但是我认为随着WebRTC规范的发展,这将随着实施而改进。
用于生成启用RTCDataChannel的对等连接:
var localpeer = new webkitRTCPeerConnection(localConfig,{ 'optional': [{'RtpDataChannels': true }] });