socket.io vs swr用于更新实时内容

问题描述

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

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

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

解决方法

我认为SWR并没有达到您的期望。它可以帮助您发送良好的HTTP请求,对其进行缓存并在需要时进行刷新(例如,在一定时间后更改道具,安装组件)。它对套接字所做的最接近的操作可能是"polling on interval"

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...