首页 > 解决方案 > 频繁从 socket.io 接收数据时反应崩溃

问题描述

我有一个反应应用程序每 5 秒接收一次数据。服务器可以很好地处理它,但是如果您离开页面并返回或等待约 10 秒,页面将变成白色并变得无响应。

数据包含应用程序要更新和显示的信息。

我尝试使用异步函数来处理数据,但这无济于事

socketio 客户端代码:

socket.on('UpdateGames', data => {
    const {j, s, e} = JSON.parse(data)
    setJoin(j.map(item => new Game(item)))

    setSpec(s.map(item => new Game(item)))

    setEnd(e.map(item => new Game(item)))
})

编辑:尝试每 10 秒发送一次数据,但同样的事情发生

标签: browsersocket.ionext.js

解决方案


Evert 是正确的,我没有进行任何清理工作。将此添加到我的组件中

useEffect(() => {
    socket.on('connect', socket => {
        console.log('connected')
    })

    socket.on('UpdateGames', data => {
        const {j, s, e} = JSON.parse(data)

        console.log("RECEIVE")

        setJoin(j.map(item => new Game(item)))

        setSpec(s.map(item => new Game(item)))

        setEnd(e.map(item => new Game(item)))
    })
    

    return () => socket.off('UpdateGames', listener)
}, [])

推荐阅读