websocket Vue -从后端接收通知的最佳方式

baubqpgj  于 2022-11-11  发布在  其他
关注(0)|答案(2)|浏览(158)

我正在向我的Vue 3应用程序添加后端发送的通知。
我的Django后台生成通知并保存到用户收件箱;在那里它们可以在任何时间被访问和读取。
我试图决定哪种方式最适合前端接收此类通知。基本上,我在两个选项之间左右为难:

  • 使用轮询;类似于20秒的setInterval,它只是进行REST调用以获取用户的最新通知
  • 打开WebSocket;每次有新的通知时,服务器都会推送一条消息

我更倾向于使用WebSocket选项;然而,我关心的是:
1.复杂性:必须管理重新连接以及工作站可能出现的所有问题
1.性能:我预测一次最多有200-300个用户;那么多打开的WS连接是否是一个可能的问题?
权衡这些因素,哪一个会更好地满足我的需求?您将如何减轻所选方法的缺点?

qaxu7uf2

qaxu7uf21#

在我看来,通知系统的最佳解决方案是使用WebScokets,如socket.io。如果使用HTTP请求,服务器每隔几十秒就会收到大约300个请求,这对服务器来说是一个很大的负担。2在这种情况下,大多数请求都是不必要的(用户未收到任何通知)。使用套接字,服务器将仅在收到通知时向客户端发送通知。套接字的另一个优点是通知会立即到来,而不是每隔一段时间就发出一次。
WebSockets通知系统的优点:

  • 服务器负载更少,操作更高效(性能更佳)
  • 更全面的通知系统
  • 以后可以使用其他“服务器推送”数据扩展

缺点:

  • 与REST通信相比,实施时间更长且更难
atmip9wb

atmip9wb2#

WebSocket是最好的解决方案在您的情况下,我使用的vue-native-websocket插件。

相关问题