首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Google消息传递推送通知的Android p2p文件传输

带有Google消息传递推送通知的Android p2p文件传输
EN

Stack Overflow用户
提问于 2014-06-02 22:25:41
回答 1查看 913关注 0票数 0

我有一个问题,经过几个小时的研究,我甚至无法开始解决。我需要使用GCM,以方便对等文件传输(JPEG图像约1.5兆字节的文件大小是具体的)。

Client A打开一个套接字并使用AirBOP通知客户机B它想发送图片并给B相关信息(IP地址+使用端口,我猜是短暂的)。然后连接到A并下载图片。所有这些都落后于NAT,如果有可能的话,还可以通过3G/4G。不涉及服务器。

我查看了TTorrent,Snark,Cling,NAT打孔,PWnat等,但我仍然不知道如何实现上面的目标,如果有可能的话。我真正理解的是,我需要使用端口映射或UPNP。

对不起,英语不好,我正在寻找解决上述问题的路线图/指南线/图书馆/现有教程/项目。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-27 20:46:43

  1. Google消息传递(GCM)并不是为了提供大量的有效负载。它的意图是为您的应用程序提供一条轻量级的消息,然后处理繁重的工作(例如,一封新的电子邮件通知通知您的应用程序它已经过时了,并且它应该检索新的电子邮件)。尽管如此,它确实有能力承载高达4Kb的有效载荷。这显然不足以处理1.5Mb有效负载。您可能会考虑实现某种类型的协议,它将在x个GCM消息之后组装完整的有效负载。首先,每个ip地址每天允许的GCM请求数量是有配额的。其次,GCM显式地不希望它的服务以这种方式使用,如果它检测到它正在以这种方式使用,它将阻止GCM消息。有关详细信息,请参阅http://developer.android.com/google/gcm/adv.html

  1. 实现p2p应用程序所需的要么是STUN服务器,要么是转身服务器。STUN服务器用于发现设备用于与internet通信的公共IP和端口。您可以实现您自己的STUN服务器,但是需要一个来自两个对等点的可公开访问/可路由的服务器,或者使用一个公共STUN服务器并使用GCM通知每个对等点其他公共ip和端口。这种技术的一个主要限制是,如果其中一个设备位于已配置为使用对称NAT的路由器/NAT后面,则不会穿孔。这是有例外的,但通常是这样的。使用转身服务器基本上只是通过中央/公共服务器将数据从一个对等点中继到另一个对等点。这不是一个很大的挑战,但它将花费您的费用,因为这种类型的解决方案会给服务器带来沉重的负载,而不是STUN服务器,您可能需要购买几台服务器来处理用户负载。

  1. 我正处于我自己的p2p项目中,我发现Verizon实现了端口复位锥nat,AT&T对称锥nat,Sprint对称锥nat。考虑到移动运营商的流行(Verizon #1,At&t #2,Sprint #3),这是值得考虑的问题。

STUN协议https://www.rfc-editor.org/rfc/rfc5389

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24004272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档