next.js socket.io 与SWR的实时内容更新对比

xurqigkl  于 2023-02-04  发布在  其他
关注(0)|答案(2)|浏览(179)

我目前正在用next.js构建一个网络应用程序,它需要跨设备的实时更新,例如,如果有人加入了一个组,这需要立即显示给该组的所有现有成员。
目前,我最初是在页面加载时为用户获取数据,并在必要时使用www.example.com更新内容,然而,我刚刚发现了SWR框架,它在请求正文发生变化时自动更新内容。socket.io to update content when necessary. However, I have just discovered the SWR framework, which automatically updates the content when there is a change in the body of the request.
我的问题是:我是坚持我现在的方法更好,还是使用SWR钩子更好?目前,页面加载时提取了相当多的数据,例如组、设置等,但是如果我使用多个SWR钩子分别提取组、设置等,会更有效吗?

2eafrhcq

2eafrhcq1#

我不认为SWR做了你期望它做的事情。它帮助你发送一个好的旧的HTTP请求,缓存它,并在你需要的时候刷新它(例如,属性改变,组件挂载,在一段时间后)。它做的最接近套接字的事情可能是“轮询间隔”。
例如,你可以设置SWR每5秒刷新一次数据,但这实际上并不是一个“实时”连接。如果你的内容需要实时更新,我会说,坚持使用套接字。如果你想从HTTP服务器加载内容,缓存并不时地重新验证它,SWR是你的工具。

w8f9ii69

w8f9ii692#

因为useSwr依赖于HTTP,它比websockets更具可伸缩性,websockets将您的客户端绑定到特定的服务器长达数小时。
是的,用swr每5秒刷新一次并不是实时的,但是如果它能满足你的目的,当流量增长时,使用swr会更可靠。

相关问题