马德堡半球实验— <关于微信面对面建群的功能设计及其技术实现>



于拱墅一条小吃街,与pre-workmate&&bosom friend,畅谈近况及在研究的技术。忽然想起白天用的“面对面建群”,一群素不相识的人需建一群聊。在此场景下如何快速实现?打印出二维码众人再扫显然不是最佳。平时极低频次使用的这个功能,应是最便捷方案。

但这个功能是怎么个规则?又是怎样的实现?听我抛出以下几点事实和疑问,他也心生好奇,脱下扒小龙虾的手套,摆弄手机,而我也放下正啃食的猪蹄,擦拭双手,开始实验。

1 . 这个四位数字可以人为指定,并不是随机生成。经测试,除去“1111”“2222”“1234”外皆可用,即大概有近9000种选择。

最初以为这个四位数随机生成,并没有认为真在“面对面”上做文章,即腾讯认为,其10 0000 0000用户,不太可能在同一时刻,有超过9000人在使用该功能。但后来发现可以人为指定数字后,此论述不成立。

如身在杭州的我,和远在加州的Mark打开微信该功能,同一时刻输入同一串约定好的四位数字,很显然,我们不可能进入同一个群聊.

2 . 完全陌生的一群人在相近距离内,能否通过该功能创建并进入同一群聊?简化来说,即两个生人之间,是否需要有一共同好友,才可进群?

即如诸葛亮认识孟获,诸葛亮也认识鲁肃,但鲁肃与孟获素未谋面,如果诸葛亮率先输入一串数字发起,孟获鲁肃二人应可通过同一串数字加入群聊.但关键问题就是,假如抛去诸葛亮这个节点,不是好友的二人直接使用该功能,能否成功?

答案是肯定的

3 . 我去街对面,再和好友测试该功能,可正常使用.

4 . 关闭GPS,再使用该功能,仍然正常(此处应是因为微信会记录未关闭GPS之前的位置,所以即便二人关闭定位,依据上一次的历史,看上去二人仍在相近位置)


小结


  • 通过以上几次测试,可以得出,「面对面建群」确实使用了GPS来估算,一定地理范围如方圆500米内,同一时间使用该功能输入同一串数字的用户,会进入到群聊

相关可参考

还有几点疑惑可以探讨


  • “面对面”,这个具体的距离范围是多少?

  • 群主产生的逻辑是什么?

  • 我在居住的A地和朋友们用该功能输入8888建一群聊,一天后,我们在群里聊得正嗨,有一新同学前来,我让他输入8888进群.但与此同时,隔壁邻居家来了客人,也想通过该功能建一群聊,且巧合的是也偏爱8888.于是这时,我这位新来的朋友,最终加入的是哪个群聊?

  • 设计为腾讯下发四位数字,而非用户指定,是不是更合理?

  • 假如有一大型活动3万人参与,在八万人体育场甚至是诺坎普这样能容纳近10万人的巨大空间,需要3人一队,分成1万组,这时候如果使用该功能,是不是会一定发生紊乱?