简体   繁体   English

套接字 io CORS 错误无法通过 Socket.io 将客户端连接到 Nodejs 服务器

[英]Socket io CORS error Can't Connect Client To Nodejs Server Through Socket.io

I have working Nodejs server which I reach at localhost:4000 (working fine).我有可以在 localhost:4000 访问的 Nodejs 服务器(工作正常)。 I'm trying to connect a client through socketio to server outside of Nodejs.我正在尝试通过 socketio 将客户端连接到 Nodejs 之外的服务器。 From localhost:8888/page (MAMP app) to a socket, but I'm getting ERR_FAILED 200 in console.从 localhost:8888/page (MAMP 应用程序)到套接字,但我在控制台中得到ERR_FAILED 200 There's something preventing from connecting to a socket.有东西阻止连接到套接字。

Nodejs server.js: Nodejs server.js:

import fetch from 'node-fetch';
import express from 'express';
const app = express();
import http from 'http';
const server = http.createServer(app);
import {Server} from 'socket.io';
const io = new Server(server);
import mysql from 'mysql';

{...}

server.listen('4000', () => {
  console.log("Server running on port 4000");
});

a webpage outside of node app:节点应用程序之外的网页:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title></title>
  <script src="https://cdn.socket.io/4.4.1/socket.io.min.js" integrity="sha384-fKnu0iswBIqkjxrhQCTZ7qlLHOFEgNkRmK2vaO/LbTZSXdJfAu6ewRBdwHPhBo/H" crossorigin="anonymous">
  </script>
  </script>
</head>
<body>

<script src="http://localhost:4000/socket.io/socket.io.js"></script>
<script>

const socket = io.connect('http://localhost:4000/');


</script>
</body>
</html>

Please help..请帮忙..

https://socket.io/docs/v3/handling-cors/ https://socket.io/docs/v3/handling-cors/

const io = require("socket.io")(httpServer, {
  cors: {
    origin: "https://example.com",
    methods: ["GET", "POST"]
  }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM