消息推送
505字约2分钟
2024-12-12
本项目使用的是 SSE。
轮询
轮询(polling
)很好理解,就是每隔一段时间就向服务器发送一次请求,来获取最新的消息。
短轮询
短轮询(short polling
)就是每隔一段时间就向服务器发送一次请求,来获取最新的消息,如果服务器有新的消息,就返回给客户端,如果没有新的消息,就返回空。
长轮询
长轮询(long polling
)就是每隔一段时间就向服务器发送一次请求,来获取最新的消息,如果服务器有新的消息,就返回给客户端,如果没有新的消息,就一直等待,直到超时或者有新的消息。
SSE(Server-sent events
)
SSE(Server-sent events)是一种用于在浏览器和 Web 服务器之间建立持久连接的技术,允许服务器向客户端推送数据。它基于 HTTP 协议,在服务器和客户端之间打开一个单向通道,服务端响应的不再是一次性的数据包而是 text/event-stream
类型的数据流信息,在有数据变更时从服务器流式传输到客户端。
WebSocket
WebSocket 是一种用于创建全双工、双向通信的协议,允许服务器和客户端之间进行实时通信。它与 HTTP 协议不同,它不是基于 HTTP 协议的,而是基于 TCP 协议的。
服务端之间的通信(webhooks)
webhooks 是一种用于在服务器之间进行消息传递的机制,它允许服务器通过 HTTP 请求将数据发送到指定的 URL。
可以用(发布/订阅
)模式来处理消息,中间件进行管理,订阅者可以向中间件订阅某个主题,当有新的消息发布时,中间件会将消息推送给所有订阅者。