Вы можете отправить новое сообщение с сервера узла, как.
let msg = {message: 'Actual Message', sender: 'Name of sender'}
io.on('connection', socket => {
socket.on('chat message', msg => {
io.emit('chat message', msg);
});
});
Затем в компоненте чата прослушайте событие сообщения чата.
componentDidMount() {
this.socket = io("http://server.address:port");
this.socket.on("chat message", msg => {
this.props.onMessageReceivedAction (msg); // import action and will execute on message received event
});
});
Затем добавьте действие:
export const onMessageReceivedAction = (params) => {
return {type: MESSAGE_RECEIVED, payload:msg};
};
Добавьте в редуктор регистр полученного сообщения
case MESSAGE_RECEIVED:
let newMessage = {
sender: payload.sender,
message: payload.message
};
return { ...state, chats: state.chats.push(newMessage) };
Это вернет новое состояние и подпорки компонента сопоставленный с вышеупомянутым состоянием будет повторно обработан.
Надеюсь, это ответит на ваш вопрос.