Учитывая приведенный ниже код, сокет, инициализированный с wss://echo.websocket.org/
, вызывает onopen.Тот, который указывает на мой локально работающий сервер, не работает.
constructor(props) {
super(props
// this doesn't work (doesn't call onopen)
this.socket = new WebSocket("ws://localhost:3000/websocket");
// this works (calls onopen)
this.socket = new WebSocket("wss://echo.websocket.org/");
}
componentDidMount() {
console.warn('Mounting..')
this.socket.onopen = () => {
console.warn('onopen');
this.socket.send('Ping')
this.setState({ connected: true }, this.subscribe)
};
this.socket.onerror = (error) => console.log('Error: %o', error);
this.socket.onmessage = (message) => console.warn('Server: ' + message.data);
}
Я могу подключиться к обеим службам и подключиться к ним с помощью wscat
project master % wscat -c wss://echo.websocket.org/
> connected (press CTRL+C to quit)
project master % wscat -c ws://localhost:3000/websocket/
> connected (press CTRL+C to quit)
Чего мне здесь не хватает?
(и, очевидно, я не называю this.socket = new WebSocket()
2x в моем коде, это просто для сравнения.)