Задача в том, чтобы восстанавливать подключение к WebSocket если соединение закрывается ненамеренно.
Пробовала делать так, но проблема в том, что после переоткрытия соединения сообщения приходят но
webSocket.current.onmessage
не работает.
export const useWebSocket = () => {
const webSocket = useRef();
useEffect(() => {
webSocket.current = new WebSocket("ws://url");
webSocket.current.onclose = event => {
if (event.wasClean === false) webSocket.current = new WebSocket("ws://url");
}
webSocket.current.onmessage = event => {
const { msg_type, data } = JSON.parse(event.data);
switch (msg_type) {
case "one_msg_type":
callOneFunction();
break;
case "another_msg_type":
callAnotherFunction();
break;
}
};
return () => webSocket.current.close();
}, []);
}
Как можно это исправить? Нужно ли тут вообще использовать useRef?