实现一个网页版的聊天室(类似于钉钉群),请列出关键的技术方案及要点。需求如下:
- 高实时性、高性能
- 你发的每条消息可以看到有多少人已读
- 当信息中含有“@某人”时,被@的人的界面上会显示“有人@你”的提醒字样
- 刷新页面或断网状态下,历史聊天记录不会消失
答案与解析
- 运用socket通讯,
- 服务器向客户端发送数据,
- 客户端接收之后向服务端返回一个字段,代表已读,
- 客户端接收数据之后建立本地缓存(cookie或者sessionStrorage),
- @的状态可以通过对特定ID发送数据时增加一个字段,在客户端识别到该ID和本地ID相同时,显示“有人@你”