代码之家  ›  专栏  ›  技术社区  ›  HDIK

与nodejs(express)的连接被拒绝

  •  0
  • HDIK  · 技术社区  · 2 年前

    我是一名长期程序员,但在我的代码中很少使用nodejs。现在我需要在我当前的代码中使用它,我遇到了一个我自己似乎无法解决的问题,我在谷歌上搜索了很多,但似乎没有任何东西能解决它。

    我正试图让我的网站连接到同一台主机上运行的nodejs服务器。

    如果我在浏览器中访问url,它可以正常工作 (http://localhost:6857/socket.io/?EIO=4&transport=polling) 我看到了这种反应

    0{"sid":"s_v860SbNO4toknPAAAA","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":20000}
    

    但当我试图通过网站连接时,我只是

    GET http://localhost:6857/socket.io/?EIO=3&transport=polling&t=N_gL_HZ net::ERR_CONNECTION_REFUSED
    

    有没有人能指导我如何解决这个问题,这样我就可以开始在我的网站中使用nodejs了?

    这是我的服务器。js

    // use express
    var express = require("express");
     
    // create instance of express
    var app = express();
    
    
     
    // use http with instance of express
    var http = require("http").createServer(app);
    
    // start the server
    var port = 6857;
    http.listen(port, '0.0.0.0', function () {
        console.log("Listening to port " + port);
    });
    
    // create socket instance with http
    var io = require("socket.io")(http);
    
    // add listener for new connection
    io.on("connection", function (socket) {
        // this is socket for each user
        console.log("User connected", socket.id);
    });
    
    io.on("connect_error", (err) => {
      console.log(`connect_error due to ${err.message}`);
    });
    

    这是我网站中的JS代码

    <script>
        var server = "http://localhost:6857/";
        var io = io(server);
    </script>
    
    1 回复  |  直到 2 年前
        1
  •  0
  •   Jeppe Christensen    2 年前

    Socket IO要求您显式启用CORS,因此您会出现上述错误。

    要启用CORS,请参见以下内容 link