首页 > 解决方案 > React Native websocket 对象在第一次尝试时未连接

问题描述

我是 react-native 和 websocket 的新手。

 const client = new W3CWebSocket(
    'url/api/ws/chat/1/' + logID + '/',
  );
  useEffect(() => {
    getID();
    getPrevMsgs();
    client.onopen = (e) => {
      console.log('WebSocket Client Connected',);
    };
  
    client.onmessage = message => {
      const dataFromServer = JSON.parse(message.data);
      console.log('got reply! ', dataFromServer);
      if (dataFromServer) {
        setMessages(messages => [
          ...messages,
          {msg: dataFromServer.type, sender: dataFromServer.sender},
        ]);
      }
    };
    scrollHandler();
    return () => {
      getPrevMsgs();
      scrollHandler();
      client.close();
    };

现在正如您在上面的代码中看到的那样,问题是当我进入我的聊天屏幕时,它没有连接到 WebSocket,但是当我按下 ctrl+s 然后它连接到 websocket,我也尝试添加这一行 *const client = newW3CWebSocket ('url/api/ws/chat/1/' + logID + '/'); * 在 useEffect 中,但仍然发生同样的事情。我如何解决这个问题的原因是什么。

问题:当我来到聊天屏幕时如何自动连接websocket?

标签: reactjsreact-nativewebsocket

解决方案


推荐阅读