[求教] 移動端如何實現去中心化的平行發現

2015-07-09 07:40:37 +08:00
 sallowdish

在下好奇移動端的應用是如何保持end2end的網絡通信的通暢,比如IM(微信)之類,是如何保證移動端在不同網絡間切換后仍然能恢復通信的呢?

感覺應該不會是longpoll這種老技術吧,不管對移動端還是server的壓力都不小。

難道是有background一直運行的service,一檢測到IP變化就和server同步嗎?這樣的話必須要有central index server的存在,可以完全decentralized嗎?

求大神指點迷津。。

歡迎評論里提問,語文不好,描述的不是很清楚,不斷補充完善ing

2304 次点击
所在节点    程序员
7 条回复
pimin
2015-07-09 08:29:26 +08:00
1.微信并不是去中心化
2.类似服务不可能完全实现去中心化,比如双方在不同Wi-Fi(局域网)情况下无法从任何一方主动发起通信
3.类似服务大多是基于TCP 长连接+心跳包吧。

给TCP 长连接打上老技术标签个人认为并不合适.
redsonic
2015-07-09 17:47:52 +08:00
有备案的社交工具会去中心化? 这里可是天朝哦
JamesRuan
2015-07-09 23:43:14 +08:00
在NAT后面的两个网怎么也没法P2P吧!
sallowdish
2015-07-10 02:16:40 +08:00
@pimin longpoll之類的keep alive的utilization太低了,如果是client和client之間的longpoll還可以接受,但如果是每隔30s和server來一次longpoll,utilization絕大多數情況下連0.1都達不到(暴露lz沒人愛的真相了。。)
sallowdish
2015-07-10 02:20:15 +08:00
@JamesRuan 應該不會啊,IP+port#+MAC應該是可以穿NAT的吧
JamesRuan
2015-07-10 16:14:25 +08:00
@sallowdish 这种方式需要对面有个NAT前的机器接应,实际链接的是NAT前的机器,那个机器替你转发而已,并非直连。
sallowdish
2015-07-11 05:20:26 +08:00
@JamesRuan 現在一般NAT都是路由來做的啊,到IPv6推廣開也就不再需要NAT了說。再説不管NAT怎麽弄,對於P2P的client side都是完全沒有關係的啊,對於client都是直接内網IP+port連接外網IP+port建立連接,完全都不知道NAT存在的說

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/204365

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX