В моем реагировании, ComponentDidMount () он подписывается на сообщения чата, и когда сокет получает новые сообщения, они переводятся в состояние компонента.Когда пользователь вводит сообщение и отправляет форму, сообщение отправляется в виде JSON бэкэнду

Это мой сокет socket.io
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-
With, Content-Type, Accept");
next();
});
server.listen(3000)
io.on('connection', function(socket) {
console.log('user connected');
socket.on('disconnect', function() {
console.log('user disonnected');
})
socket.on('chat', function(data) {
io.emit('chat',data);
})
})
Вот мой компонент реакции:
state = {
currentRoom: {
messages: [],
message: ""
}
};
componentDidMount() {
socket.on('chat', message => {
message.key = JSON.stringify(message);
this.setState((prevState) => {
let messages=prevState.currentRoom.messages;
messages.push(message) {
messages:messages
}
})
})
}