【问题标题】:socket.io vs swr for updating real-time contentsocket.io vs swr 用于更新实时内容
【发布时间】:2021-01-22 18:38:03
【问题描述】:

我目前正在使用 next.js 构建一个 Web 应用程序,它需要跨设备实时更新,例如,如果有人加入了一个群组,则需要立即向该群组的所有现有成员显示。

目前,我最初是在页面加载时为用户获取数据,并在必要时使用 socket.io 更新内容。但是,我刚刚发现了 SWR 框架,它会在请求正文发生变化时自动更新内容。

我的问题是:我是坚持目前的方法还是使用 SWR 挂钩更好?目前,页面加载时正在获取大量数据,例如组、设置等,但是如果我使用多个 SWR 挂钩分别获取组、设置等会更有效吗?

【问题讨论】:

  • 我想看看 Meteor。您所描述的(当服务器上发生更改时将数据推送到客户端)正是它的关键特性之一。在某些方面,它做了你认为 SWR 认为应该做的事情(乐观地说,我最初认为它也是如此)。

标签: reactjs socket.io next.js swr


【解决方案1】:

我认为SWR 不会像您期望的那样做。它可以帮助您发送一个好的 ol' HTTP 请求,缓存它并在需要时刷新它(例如,在一定时间后更改道具、安装组件)。它做的最接近socket的事情可能是"polling on interval"

例如,您可以将 SWR 设置为每 5 秒刷新一次数据,但这实际上不是“实时”连接。如果您的内容需要实时更新,我会说,坚持使用套接字。如果您想从 HTTP 服务器加载内容,不时对其进行缓存和重新验证,SWR 就是您的工具。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-22
    • 2014-09-04
    • 1970-01-01
    • 2016-09-02
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    相关资源
    最近更新 更多