Javascript 在react js中使用WebSocket。在跨域的情况下

Javascript 在react js中使用WebSocket。在跨域的情况下,javascript,node.js,reactjs,websocket,Javascript,Node.js,Reactjs,Websocket,我在react Js中使用。要建立WebSocket连接,客户端将发送WebSocket握手请求,服务器将为此返回WebSocket握手响应。React Js使用方法Fetch发送请求。因此会发生跨域错误。 服务器示例代码: const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: 10000 }); let num = 1; wss.on('connection', function connec

我在react Js中使用。要建立WebSocket连接,客户端将发送WebSocket握手请求,服务器将为此返回WebSocket握手响应。React Js使用方法Fetch发送请求。因此会发生跨域错误。 服务器示例代码:

const WebSocket = require('ws');
const wss = new WebSocket.Server({
    port: 10000
});
let num = 1;
wss.on('connection', function connection(ws) {
    ws.on('message', function incoming(message) {
        console.log('received: %s', message);
    });
    setInterval(function () {
        console.log(num);
        ws.send(num);
        num = num + 1;
    }, 500);
});
客户端示例代码:

type State = {
    data: string
};
class App extends Component {
    state: State;
    componentDidMount() {
        console.log('开始建立Web Socket');
        const webSocket = new WebSocket('wss://localhost:10000');
        webSocket.addEventListener('open', function (event) {
            console.log('建立连接');
        });
        webSocket.addEventListener('message', function (event) {
            console.log('Message from server ', event.data);
        });
    }
    render() {
        return (
          <div className="App">
            <div className="App-header">
                <img src={logo} className="App-logo" alt="logo"/>
                <h2>Welcome to React</h2>
            </div>
            <p className="App-intro">
                To get started, edit <code>src/App.js</code> and save to reload.
            </p>
          </div>
        );
    }
}
export default App;

那么,如何解决Web套接字建立过程中的跨域问题呢??
ws
的CORS?您能显示您的确切错误吗?这是服务器端问题,您需要在服务器上允许CORS。当我使用“”ws://echo.websocket.org时/“作为web套接字服务器,我得到了如下错误,localhost/:1 Fetch API无法加载。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“”。响应的HTTP状态代码为404。如果不透明响应满足您的需要,请将请求的模式设置为“no cors”,以获取禁用cors的资源。但我在chrome控制台中尝试了它们,它们都成功地执行了/“作为web套接字服务器,我遇到了跨域问题。但我在chrome控制台上试过,它们都成功执行了。真的吗??
ws
的CORS?您能显示您的确切错误吗?这是服务器端问题,您需要在服务器上允许CORS。当我使用“”ws://echo.websocket.org时/“作为web套接字服务器,我得到了如下错误,localhost/:1 Fetch API无法加载。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“”。响应的HTTP状态代码为404。如果不透明响应满足您的需要,请将请求的模式设置为“no cors”,以获取禁用cors的资源。但我在chrome控制台中尝试了它们,它们都成功执行。当我使用“ws://echo.websocket.org/”作为web套接字服务器时,我遇到了跨域问题。但我在chrome控制台中尝试了它们,它们都成功执行。