React.js и Socket.io
такая проблема - разрабатываю сайт на react.js с socket.io. Я открываю соединение через socket.io с сервером и беру некоторые данные по socket.on('getAllUsers'), когда хочу сохранить их в переменную через useState(), то происходит бесконечное создание коннектов к сокету, скорее всего из-за того, что React компонент каждый раз перерендривается, а т.к. получение данных через сокет и занесение их в переменную происходит без всяких условий, то начинаются бесконечные коннекты к сокету.
КЛИЕНТ
import React, { useState } from "react";
import io from 'socket.io-client'
function App () {
const [clientUsers, setClientUsers] = useState([])
const socket = io()
socket.on('getAllUsers', users=>{
setClientUsers(users)
})
}
СЕРВЕР
var users = [];
io.on('connection', socket =>{
console.log('Client connected.');
users.push({
trueID: null,
userID: socket.id,
username: socket.username,
});
io.emit('getAllUsers', {users:users})
}
Можно ли запретить перерендер переменное socket или есть еще какие-нибудь варианты? Мне необходимо, чтобы данные в переменной clientUsers динамически отображались на сайте, поэтому просто класть данные в обычную переменную не подходит