如何design聊天时候对方现实“正在输入”这个feature?

小弟愚笨,请众大牛赐教!

服务端需要推送到客户端对方的信息

有4种方式

  1. HTTP short polling
  2. HTTP long polling
  3. web socket
  4. 某些 RPC 的特殊功能,比如 grpc streaming api

其中 polling 最 resilient 兼容性最好但是也最 heavy,ws 最轻量级但是某些情况下会有兼容性问题

服务端需要快速更新用户输入或闲置的状态

用 redis

客户端

监听输入的状态,一旦发生了状态改变,就通知服务器,这里用 HTTP / RPC 通知服务器都可以