Ошибка «Веб-сокет закрыт или находится в состоянии закрытия» в 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,