为什么收到此错误消息“ net :: ERR_CONNECTION_REFUSED”?

时间:2019-09-13 07:27:16

标签: node.js express socket.io

我已经在计算机上安装了node.js,并且已经使用两个打开的Web浏览器在计算机上成功测试了此代码。

问题是该代码在Web服务器上不起作用。我真的不为什么吗?

代码来自以下YouTube播放列表: 12: Web Sockets and p5.js Tutorial

index.html

<html>
<head>
  <meta charset="UTF-8">
  <title>Sockets Example 1</title> 
  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js"></script>
  <script language="javascript" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.9.0/p5.min.js"></script>
  <script language="javascript" type="text/javascript" src="sketch.js"></script>
</head>

<body>
</body>
</html>

sketch.js

var socket;

function setup() {
    createCanvas(200,200);
    background(51);

    //socket = io.connect('http://127.0.0.1:3000'); ?
    socket = io.connect('http://localhost:3000');       

    socket.on('mouse', newDrawing);
}

function newDrawing(data) {
    noStroke();
    fill(255, 0, 100);
    ellipse(data.x, data.y, 36, 36);            
}

function mouseDragged() {
    console.log('Sending: ' + mouseX + ',' + mouseY);       

    var data = {
        x: mouseX,
        y: mouseY
    }
    socket.emit('mouse', data);     

    noStroke();
    fill(255);
    ellipse(mouseX, mouseY, 36, 36);
}

server.js

var express = require('express');

var app = express();
var server = app.listen(3000);

app.use(express.static('public'));

console.log("My socket server is running!");

var socket = require('socket.io');

var io = socket(server);

io.sockets.on('connection', newConnection);

function newConnection(socket) {
    console.log('new connection: ' + socket.id);

    socket.on('mouse', mouseMsg);   

    function mouseMsg(data) {
        socket.broadcast.emit('mouse', data);
    }   
}

package.json

{
  "name": "sockets_example_1",
  "version": "1.0.0",
  "description": "sockets example 1",
  "main": "server.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node server.js"
  },
  "keywords": [
    "sockets",
    "p5.js",
    "node"
  ],
  "author": "Noa",
  "license": "No license",
  "dependencies": {
    "express": "^4.17.1",
    "socket.io": "^2.2.0"
  }
}

这是文件夹结构:

├───node_modules
│   └───... (created files with node.js on my computer)
├───public
│   ├───index.html
│   └───sketch.js
├───package.json
├───package-lock.json
└───server.js

在Chrome浏览器中,我收到以下错误消息:

index.js:83 GET http://localhost:3000/socket.io/?EIO=3&transport=polling&t=MqfwDDZ net::ERR_CONNECTION_REFUSED

在firefox Web浏览器中,我收到以下错误消息:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:3000/socket.io/?EIO=3&transport=polling&t=MqfvjtX. (Reason: CORS request did not succeed).

在我的Web服务器上,安装了node.js。

0 个答案:

没有答案