Ошибка «Веб-сокет закрыт или находится в состоянии закрытия» в flask-socketio и реагирует на соединение socket.io-client

У меня есть сервер flask-socketio, который отправляет данные по триггеру. Он запрашивается клиентом react socketio каждые 2 секунды. Если данные обновляются, он отправляет их, в противном случае отправляет статическое значение (200).

Бэкэнд-событие в flask-socketio

      @socket.on('getdata', namespace = '/algoSignal')
def algoSignal():
    # global algosig
    lastOrderUpdated = json.loads(pingConn.get('lastOrderUpdated'))
    if lastOrderUpdated != '0':
        print('---------------------sent algo signal data ---------------------')
        # algosig = SymphonyOrderRaw(mongoIp).algoSignal.to_json(orient = 'records')
        algosig = SymphonyOrderRaw(mongoIp).algoSignal
        emit('algo_signal_data', algosig, broadcast = True)
        # pingConn.set('lastOrderUpdated', json.dumps('0'))
    else:
        emit('algo_signal_data', json.dumps(200), broadcast = True)

Событие Reactjs socket.io-client в useEffect

       let interval = setInterval(
          ()=>{
              socket.emit('getdata')
          },2000
      )

socket.on(
   'algo_signal_data',
   (res)=>{
       let info = JSON.parse(res)
       console.log(info);
       if (info !== 200){         
          setData(info)
       }})

Он работает правильно при запуске, но через некоторое время показывает ошибку «WebSocket уже находится в состоянии ЗАКРЫТИЯ или ЗАКРЫТИЯ», и данные обновляются во внешнем интерфейсе, но после обновления страницы данные обновляются

Как решить эту ошибку?

Зависимости Python

      Flask==2.0.2
Flask-RESTful==0.3.9
Flask-SocketIO==4.3.1
python-engineio==3.13.2
python-socketio==4.6.1

Зависимости Reactjs

      react-socket.io": "^1.0.3,
socket.io-client": "^2.3.0,

0 ответов

Другие вопросы по тегам