【问题标题】:How to subscribe to a new websocket session when switching chats in react在反应中切换聊天时如何订阅新的websocket会话
【发布时间】:2019-10-25 13:24:57
【问题描述】:

我正在开发一个实时聊天功能,用户可以加入许多不同的聊天室。切换房间后,我很难订阅新的聊天室。它正在将消息发送到正确的会话,但由于没有重新订阅新会话,因此没有接收到消息。

  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]);

一旦用户切换到新的聊天室,重新订阅会话

【问题讨论】:

    标签: reactjs websocket react-hooks


    【解决方案1】:

    尝试在重新配置之前先关闭连接。 喜欢client.disconnect();

    【讨论】:

    • 谢谢!那行得通,我设置了一个监听器来检查位置何时发生变化并强制断开连接。
    猜你喜欢
    • 2017-01-20
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多