Как подписаться на новый сеанс веб-сокета при переключении чатов в ответ - PullRequest
0 голосов
/ 25 октября 2019

Я работаю над функцией живого чата, где пользователи могут присоединяться ко множеству разных чатов. Я испытываю трудности с подпиской на новый чат после смены комнатыОн отправляет сообщения в правильный сеанс, но не получает их, так как не выполняет повторную подписку на новый сеанс.

  useEffect(() => {
      client.configure({
        brokerURL: 'ws://localhost:8080/ws',
        connectHeaders: sh,
        onConnect: () => {
          console.log('onConnect');
          setIsConnected(true);
          client.subscribe(`/secure/room/${convoId}`, mes => {
            const json = JSON.parse(mes.body);
            setMessages(prev => prev.concat(json));
          });
        },
        onDisconnect: () => {
          console.log('disconnected');
          setIsConnected(false);
        },
        onWebSocketClose: () => {
          client.unsubscribe();
        }
      });
      client.activate();
  }, [messages, convoId]);

Как только пользователь переключается в новый чат, чтобы повторно подписаться на сеанс

1 Ответ

1 голос
/ 25 октября 2019

Попробуйте сначала закрыть соединение, прежде чем переконфигурировать его. как client.disconnect();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...