Я делаю приложение с React / NodeJS / SocketIO, и в нем есть чат, я думаю, что я неправильно сделал с сокетами, поэтому я прошу помощи,
Я хочу:- во-первых, получить все сообщения, хранящиеся на сервере, - во-вторых, увидеть все новые сообщения в режиме реального времени без перезагрузки экрана
Вот сумма кода компонента
// I create a hook "messages" with nothing in it, first
const [messages, setMessages] = useState(false);
useEffect(() => {
// I initialize the socket when the component is mounted
socket.open();
// I get, all messages already sent, from the server
try {
const dataMessages = await axios.get(
`http://localhost:5000/api/chat/messages`
);
console.log("messages ", dataMessages);
// I put all the messages in the hook "messages"
setMessages(dataMessages.data);
} catch (error) {
console.log(error);
}
// am I supposed to do something here with the socket "send message" ????
// I stop the socket when the component is unmounted
return () => {
socket.close();
};
});
function sendMessage(e) {
e.preventDefault();
socket.emit("send message", {data});
}
return (
<input type="submit" onClick={sendMessage} />
)
Моя главная проблема заключается в том, что каждую секунду я получаю журнал useEffect в консоли браузера, и я не вижу новые отправляемые мной сообщения