实现的方式有ajax轮询,long poll, websocket.
前两种是在没有websocket的情况下采取的方式,比较消耗资源,都需要不断建立链接,等待服务器响应,是被动的。
在H5引入websocket之后,就解决了这种消耗,客户端向浏览器发送一个请求,服务器等有评论或回复数据时,发送给客户端,再通过合适的方式展示。所以,想要实现,最好使用websocket。
回复成功的时候插入一条消息记录,状态为未读
定时请求数据,请求到未读消息时显示在页面上
1、定时请求
2、WebSocket 双工通讯(推荐)
3、SSE(Server Side Event)推送
4、Comet 长连接
msg.cnblogs.com 提供web api(仅内网用),其他站点需要发消息就直接调,没什么特别的。
未读消息数可以用ajax轮询,当然后端可以加点缓存,不需要每次都查数据库。