Итак, у меня сейчас есть приложение чата, которое обрабатывает несколько комнат. Это просто странно, чем то, что время от времени происходит спам, связанный с закрытием и повторным подключением веб-сокета. Боюсь, это повлияет на производительность.
useEffect(() => {
if (convoId !== undefined) {
client.configure({
brokerURL: WEBSOCKET_URL,
connectHeaders: stompHeader,
onConnect: () => {
console.log('onConnect');
client.subscribe(`/secure/room/${topicId}`, mes => {
const json = JSON.parse(mes.body);
setMessages(prev => prev.concat(json));
});
setIsConnected(true);
},
onDisconnect: () => {
console.log('disconnected');
setIsConnected(false);
},
onWebSocketClose: () => {
console.log('closed');
setIsConnected(false);
}
});
client.activate();
}
}, [convoId, messages, topicId]);
history.listen( location => {
client.forceDisconnect();
setIsConnected(false);
setPage(0);
})
Консоль:
closed
closed
closed
closed
closed
closed
closed
closed
onConnect
onConnect
onConnect
onConnect
onConnect
onConnect
onConnect
onConnect
onConnect
onConnect