socket.io vs swr 更新实时内容

socket.io vs swr for updating real-time content

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

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

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

我不认为 SWR does what you expect it to do. It helps you send a good ol' HTTP request, cache it and refresh it when you need (e.g. prop change, component mount, after a certain amount of time). The closest thing it does to socket might be "polling on interval"

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