首页 / 科技 / 正文

即时通讯的“即时”到底骗了多少人?

你发出去的是消息,对方收到的是“任务”

说实话,我以前也以为发消息就是——我按发送,一秒钟后对方屏幕亮了,完事。多简单。 后来才知道不是。 一条微信消息从你手指离开屏幕到对方看到红点,中间的那段路,比你想象得要绕。你按下发送,手机先把消息加密、打成一个数据包,丢给最近的基站。基站传给你的运营商,运营商再通过海底光缆或者骨干网络传到腾讯的服务器集群。到了服务器,这条消息不是直接扔给对方——它得先排队、入库、等你朋友那边的手机上线了,服务器才把消息推过去。
微信消息从发送到接收的服务器中转流程图
等一下,有人会说那不对啊,我发语音对方不是秒收吗? 分情况。如果对方手机正在联网、APP在后台活着,消息确实几乎实时到达,走的是长连接。就是你的手机和服务器之间一直攥着一根看不见的线,服务器有消息直接顺着这根线推过来。 但如果对方的APP被杀了——比如安卓那个丧心病狂的电池管理把微信后台给干了——服务器就只能干等着。等对方下次打开APP,用“拉取”的方式把攒下的消息全部拽下来。这时候你就看到那种经典画面:朋友五分钟前发的十几条消息,稀里哗啦全涌进来。 所以“即时”这个词是有条件的。它不是邮局那种“我寄出去就完了”,也不是打电话那种两边必须同时在线。它更像个快递柜。我把东西放柜子里,你有空来拿。只是这个柜子离你家很近,你大多数时候也正好在家。 不过话说回来,即时通讯最妙的地方,恰恰是它把“实时对话”和“异步留言”给揉在了一起。这是电话和书信都没有的能力。电话必须两个人都空着。书信倒是可以异步,但一封信走三天。即时通讯就卡在中间那个甜点上——我发的时候你不一定在看,但你看的时候一定觉得我刚发。

“在线”和“在”其实是两码事

这个事其实挺好笑。 有次我发消息给一个朋友,看他在线,没回。过了一小时再发,还在线,还是没回。我差点想打电话过去问是不是出事了。后来他回我了——说在打游戏,微信消息是弹窗浮层,他扫了一眼,心想着待会儿回,然后就忘了。 你看,这就是即时通讯里最大的误会。 “在线”在技术上的定义,只是指这个设备跟服务器之间还保持着连接。心跳包每三十秒打一次,连接没断,那你就“在线”。但你人可能在开会、在带孩子、在发呆、在跟别人面对面聊天。你的手机亮着,不代表你准备好聊天了。 我们把网络层面的一个状态,当成了人的社交状态。 我跟我妈就有过这种对话。她发来一条长语音,我因为在开会没接电话,她就连环夺命call。在她那代人的概念里,打电话没接等于没空,发消息没回等于不想理人。但我其实就是单纯没看到——手机静音了。 这中间其实有个代际错位。老一辈把微信当电话用,要求即时响应。年轻一代把它当短信升级版,默认可以延迟回复。同一个APP,两套完全不同的社交契约。
手机屏幕上显示“已读”标记的聊天界面截图
手机屏幕上显示“已读”标记的聊天界面截图

已读不回,到底是谁在难受

已读不回,到底是谁在难受
已读不回,到底是谁在难受
“已读”这个功能吧……怎么说呢,它是个产品设计上的巨大分水岭。 微信不做已读。张小龙说过,不做已读是为了给用户留一点空间。这其实是个很聪明的选择。你看WhatsApp,做了已读(两个蓝色对勾)。结果呢?大家学会了“已读不回”这个罪名,然后开始想方设法绕过它。比如在通知栏里偷看消息,不点进去,这样对方就看不到已读标记。或者在锁屏界面扫一眼,然后假装没看到。 工具设计出一个状态,用户就发明一套反侦察动作。 我有个朋友更夸张,他每次看到不想回的消息,就长按通知栏——因为点进对话框就会标记已读。他在这件事上花的精力,我觉得比他回消息都多。 这就是我想说的核心:即时通讯把“沟通”这件事的效率拉到了极致,但人和人之间的那点模糊地带,被它压缩得几乎没有了。以前写信,你可以说“刚收到”——哪怕你三天前就收到了。现在不行了。时间戳替你说了实话。

一条消息的时间旅行

一条消息的时间旅行
一条消息的时间旅行
还有个特别反直觉的事:你发出去的消息,顺序不一定是你发出去的那个顺序。 群聊里最明显。你发了一条消息,同时另一个人也发了一条。两条消息几乎是同时到达服务器的,服务器盖时间戳的时候差了零点几秒。结果就是不同人的手机里,这两条消息的上下顺序可能不一样。A看到的是你先说的,B看到的是另一个人先说的。然后大家讨论起来,就变成了一场罗生门。 这在分布式系统里是个经典难题——没有一个全局的、绝对准确的时间。每台服务器有自己的时钟。你要给消息排序,就得在所有的设备之间达成一个先后共识。这个共识算法,才是即时通讯公司真正的技术护城河。不是界面好不好看,是背后那套“谁先谁后”的逻辑。 还有个更神奇的东西叫“消息撤回”。你撤回了,服务器真的删了吗?技术上,它只是发了一条“撤回指令”给你的客户端,你的本地消息记录被标记成撤回。但对服务器来说,那条原始消息可能还在。这也是为什么很多职场人开玩笑说,微信撤回该改成“请对方忘记”。 说白了,即时通讯这东西,表面上看你在跟一个人说话,实际上你是在跟一整套服务器集群、一叠协议、无数个心跳包打交道。你的每句话都绕了大半个中国,最后真的到了对方手机里,可能已经走了十几个节点了。

我们发明的到底是工具,还是焦虑

最后说个我一直没想通的事。 即时通讯明明是为了让人和人之间联系更方便。但你看现在,多少人因为一条没回的消息焦虑。多少人发朋友圈之前反复揣测谁会点赞谁不会。多少情侣因为“你怎么不回我消息”吵架。 工具越高效,我们对它的期待就越苛刻。 “秒回”变成了检验感情的标准。显示已读不回,在很多人心里比骂人还伤人。可是以前寄一封信,等三天是常态,没人觉得这有什么不对。 即时通讯最大的贡献,可能是把“沟通”这个动作的门槛降到了零。但门槛降到零之后,我们就忘记了沟通原本是有时间成本的。 现在你想找一个人,随时可以。他也可以随时找到你。听起来很自由,但你想想,一个人如果永远可以被找到,那其实就等于没有独处的时候了。 我有时候会怀念那种——发一条短信,然后心安理得地把手机放下去做别的事的感觉。不是不想回,是知道回了也不一定马上到,到了也不一定马上看。中间那段空白,是留给人的。 即时通讯把这个空白抹得越来越薄。方便是真的方便,累也是真的累。 算了,说这么多。我那条下午两点十三分发的消息,现在还是没回。我又看了一眼——对方“在线”。 但我知道,那只是一个心跳包而已。