WebSocket.send() не выполняется в react js?

#javascript #reactjs #websocket

Вопрос:

Я работаю с WebSocket в reactjs, но WebSocket.отправка не выполняется при событии onClick. здесь я создаю WebSocket

  const ws = new WebSocket("ws://192.168.18.112:8000/ws/notification/");
 

подключение к WebSocket

  ws.onopen = (e) => {
    console.log("connect");
  };
 

вот моя функция onClick

   const sendNotification = (e) => {
    console.log("click");
    if (ws.readyState === WebSocket.OPEN amp;amp; message !== "") {
      ws.send("message");
      console.log("Sending message"); // this console is execute
    } else if (ws.readyState === WebSocket.CONNECTING) {
      ws.addEventListener("open", () => sendNotification());
      console.log("Connecting state");
      console.log("Not Send");
    } else {
      console.log("nothing happen");
    }
  };

 

итак, вот моя проблема, я не могу найти ошибку или проблему в своем коде.

Комментарии:

1. Можете ли вы опубликовать вывод консоли?

2. да, сначала подключается ws, а затем в функции все условия вызываются случайным образом, но строка кода « ws.send(«сообщение»)` » пропускается или не выполняется.

3. Измените console.log(‘click’) на также войти we.readyState и message . Это может дать вам некоторые подсказки о причине.

4. также была распечатана консоль «отправка сообщения»

Ответ №1:

попробуйте этот W3CWebSocket. Также я не думаю, что есть «/» после уведомления после ws/уведомления, дважды проверьте, правильна ли ваша конечная точка или нет.

 mport React, { Component } from 'react';
import { w3cwebsocket as W3CWebSocket } from "websocket";

const client = new W3CWebSocket('ws://192.168.18.112:8000/ws/notification/');

class App extends Component {
  componentWillMount() {
    client.onopen = () => {
      console.log('WebSocket Client Connected');
    };
    client.onmessage = (message) => {
      console.log(message);
    };
  }
  
  render() {
    return (
      <div>
        Practical Intro To WebSockets.
      </div>
    );
  }
}

export default App;
 

Комментарии:

1. Я тоже пробовал этот подход. но, к сожалению, это тоже не работает