5.Websocket实现消息推送

发布时间 2023-12-05 21:59:03作者: 求知律己

  项目需要一个在线协同办公功能来进行消息实时推送,我采用SpringBoot结合Websocket来实现该功能。Websocket采用全双工通信方式,可以在客户端和服务端之间建立持久的连接,实现实时的双向通信。

相对于传统的HTTP请求,WebSocket具有以下优势:

  • 实时性:Websocket提供实时的双向通信能力服务器可以主动推送消息给客户端,而不需要客户端主动发送请求。这使得Websocket适用于需要及时更新的实时场景
  • 低延迟:Websocket通过建立长连接,可以减少每个消息的传输开销,从而降低通信的延迟
  • 较少的带宽占用:相比于HTTP请求,Websocket使用更少的带宽,因为Websocket在建立连接后只需要较小的额外开销
  • 跨域支持:ebsocket可以轻松支持跨域通信,因为它不受浏览器同源策略的限制

WebSocket使用场景:

  1. 实时聊天应用:Websocket能够提供实时的双向通信,使得实时聊天系统能够实时更新消息,并且可以实现在线用户状态的实时更新。
  2. 实时协作编辑:Websocket使得多个用户能够实时协作编辑同一个文档每个用户的修改可以广播给其他用户(腾讯文档),实现实时的协同编辑功能。
  3. 实时推送服务:Websocket可以与服务器建立持久化连接,服务器可以主动推送实时的更新给客户端,例如实时股票行情推送、实时新闻推送等

消息推送其实还可以通过消息队列来完成,后续将通过消息队列完成该功能。