Проблема с приложением чата (Реагируйте с перехватами, NodeJS и SocketIO) - PullRequest
0 голосов
/ 13 октября 2019

Я делаю приложение с 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 в консоли браузера, и я не вижу новые отправляемые мной сообщения

...