首页 / 科技 / 正文

你发的“在吗”,在即时通讯里到底卡在哪了?

昨晚十一点半,我蹲在沙发上给闺蜜发“明天带伞”。

对话框上转了三分钟的小圆圈,最后跳出来个红色感叹号。

我盯着屏幕骂了三秒,切到另一个聊天软件,秒发成功。

这不是网差。

这是即时通讯藏了快三十年的老毛病。

你以为的“即时”,其实是在跑接力赛

很多人对即时通讯的第一印象,就是消息直接从你手机弹到对方手机。

哪有这么好的事。

你按发送的那一刻,消息要先从你的手机跳去家里的路由器,再顺着小区的光纤跑到运营商的基站机房,接着拐进即时通讯服务商在全国铺的几十上百个节点服务器,最后绕一大圈,才会被推到对方的手机上。

就像你从南京新街口给北京的朋友寄一杯冰美式,总不能你直接递到人家手上吧?总得经过快递员、中转站、分拣点、最后派送员,中间任何一个环节堵了,这杯冰美式要么晚到,要么直接化了。

消息传输也是一样的道理。

即时通讯消息传输路径生活化示意图

上次我为了找一个失联的同事,换了三个软件发消息,电话都打了两个,最后才知道他把所有即时通讯软件的后台权限都关了——就为了省电,怕手机一天三充。

真的会谢。

你以为的“对方不回消息”,搞不好是消息根本就没走完那一圈接力赛,还卡在哪个机房的角落里排队呢。

那个“已读”,根本不是你想的那样

多少人曾经因为聊天框里那两个冷冰冰的“已读”,对着屏幕内耗一下午?

我之前也是。

上次给领导发完改了三版的方案,显示已读半小时没回,我坐在工位上把方案又翻了八遍,连标点符号都检查了三遍,就怕哪里出了错。

后来领导下班碰到我,说他当时在开车,通知栏扫了一眼,根本没点开APP。

哦。原来如此。

很多软件的“已读”标记,根本不是“对方点开APP看完了你的消息”。

大部分时候,只要服务器把消息推到了对方手机的通知栏,不管对方是扫了一眼,还是直接划掉,甚至根本没注意到通知弹出来,系统都会自动给服务器回一个“我收到了”的回执,软件就直接把这个回执标成了“已读”。

即时通讯推送与拉取机制对比示意图
即时通讯推送与拉取机制对比示意图

说白了,这个“已读”只能证明“消息到了对方手机边上”,证明不了对方真的看了。

别再对着两个字瞎琢磨了。

对吧?

你天天用的这些软件,其实早就不是一个路子了

我在新街口写字楼上班的时候,早高峰用某办公软件发个10M的会议纪要,转五分钟都发不出去。

旁边的同事用另一个社交软件发奶茶拼单的消息,秒到。

同样是即时通讯软件,差距怎么就这么大?

其实是因为大家的“赛道”从根上就不一样。

主打熟人社交的软件,要的就是快,所以节点服务器都往人多的地方堆,你在南京发消息,大概率直接连到隔壁上海的节点,信号跳两下就到对方手机了,延迟低到你根本感觉不到中间绕了路。

主打办公的软件不一样,为了存你所有的聊天记录、文件、审批流程,所有消息都得先过一遍中央服务器存进数据库,哪怕你和对接的同事就在同一个办公室,消息也得先绕到千里之外的机房转一圈,高峰期机房一堵,发个消息卡个十几秒都是常事。

你以为你花大价钱升了千兆宽带,发消息就能快人一步?

错。

要是服务商给你分配的节点离你几百公里远,哪怕你家网能跑飞机,该转圈圈还是得转。

上次我赶项目节点,用办公软件发个10M的附件,转了五分钟没发出去,切到社交软件发给同事,三秒搞定。

我当时就想,要是所有做即时通讯的厂商,都能多往用户堆里多部署几个节点,能救多少加班到凌晨的人。

昨天我又给闺蜜发带伞的消息,这次秒发成功。

她回了个淋雨的表情包,说早知道我上次发的感叹号,就提前半小时出门了。

哦对,那天南京下了暴雨。

我站在公司楼下,看着雨幕里的人挤着打车,突然觉得,那些藏在即时通讯里的弯弯绕绕,说穿了,不就是为了让你说的每一句废话,都能顺顺利利传到对方耳朵里吗。

对了,刚才我妈发消息问我晚上回不回家吃饭,对话框上的小圆圈已经转了三秒了。

等下,我得切个软件给她回。

哦不对,我妈就用这一个聊天软件。

算了,等它转吧。