所以我现在有一个聊天应用程序,可以处理多个房间,这比偶尔发生的每次关闭Websocket连接的垃圾邮件都奇怪。恐怕这会对性能产生影响。
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