Talk

消息按序到达,而且扛得住网络抖动。

一个会话落在我们的一台机器上,所有参与者通过我们的网络到达它。每个客户端都带着游标,断线之后从原处续上——不重复、不丢失。

01

两种会话

<b>普通会话</b>按套餐约定的天数保留历史,晚到的人能读到之前的内容。<b>直播聊天</b>只在内存里留最近几百条、不落盘——它就是直播间的弹幕,而且是同一个产品,因为两者唯一的差别只是一条消息留多久。

02

谁能进来

每个会话有一个链接。拿到链接只是获得了询问的资格;口令(以及可选的人机验证)决定能否进入。也可以完全关闭链接访问,由你自己的后端签发进入令牌——这样链接泄露对任何人都毫无价值。

03

一个标签,或者一个都不用

引入脚本、用房间链接调用 join:你会按序收到每条消息,并拿到发送入口。或者直接把人送到托管页面,那是带好设计的同一个东西。参与者显示的名字由你的应用决定。

04

为什么跑在网络上

文字很小,所以每个会话都从参与者所在地经我们的网络到达。路径变化导致的连接重置会立刻重连并从游标续上——代价是一个往返,不是一条消息;这也是它能跑在网络上而语音通话不能的原因。