只要触发某个事件(主动分享了资源或者后台主动推送消息),Web 页面的通知小红点就会实时的 +1
就可以了。
通常在服务端会有若干张消息推送表,用来记录用户触发不同事件所推送不同类型的消息,前端主动查询(拉)或者被动接收(推)用户所有未读的消息数。
消息推送无非是推(push)和拉(pull)两种形式
1. SSE方式
服务器发送事件,Server-Sent Events
这是一种服务器端到客户端(浏览器)的单向消息推送
注意: SSE 不支持 IE 浏览器,对其他主流浏览器兼容性做的还不错
2. WebSocket方式
WebSocket是一种在Web应用程序中提供双向通信的协议。它建立在HTTP协议之上,通过在客户端和服务器之间建立持久连接,实现实时数据传输。
WebSocket在初始握手阶段使用HTTP协议,然后在建立连接后切换到WebSocket协议。与传统的HTTP请求-响应模型不同,WebSocket允许服务器主动向客户端推送数据,而不需要客户端显式发送请求。这种双向通信模式使得WebSocket非常适用于实时应用程序,例如聊天应用、实时数据监控等。
WebSocket在浏览器端使用JavaScript的WebSocket对象进行编程。它提供了与服务器进行连接、发送和接收数据的函数。在服务器端,需要使用相应的WebSocket库或框架来处理WebSocket连接和数据传输。