无法使socket.io客户端连接到服务器

时间:2020-11-01 08:57:56

标签: javascript node.js express sockets socket.io

我正在尝试使用express将客户端连接到服务器并使用node.js运行。

似乎我无法连接到服务器。我遵循的指南(https://socket.io/get-started/chat)是服务器将html页发送到客户端(localhost:3000)。我正在尝试通过双击文件来运行html,但是它无法连接到正在运行的服务器。我对此很陌生,我们将不胜感激。

每3秒钟左右,这会在浏览器控制台中弹出:

Error: GET http://file/socket.io/?EIO=3&transport=polling&t=NM2_lBl net::ERR_NAME_NOT_RESOLVED
index.js:83

引用的index.js文件不是我写的,但是这一行是

Backoff.prototype.setJitter = function(jitter){
  this.jitter = jitter;
};

这是我的代码:

我的客户代码是:

var socket = io();
console.log(socket)

function sendMe() {
    socket.emit('data update', me)
}

socket.on('data', function (msg) {
    console.log("test")
    if (msg != null) {
        var real = JSON.parse(msg)
        pUps = real;
    }
});

任何我的服务器代码:

var app = require('express')();
var http = require('http').createServer(app);
var io = require('socket.io')(http);

var characters = [];
var pUps = [];

app.get('/', (req, res) => {
    console.log("Got here")
    res.send('<h1>Hello world</h1>');
});

io.on('connection', (socket) => {
    console.log("connection")
    socket.on('data update', (msg) => {
        //process data
    });
});

http.listen(3000, () => {
    console.log('listening on *:3000');
});

1 个答案:

答案 0 :(得分:0)

我试图通过双击文件来运行html,但是它无法连接到正在运行的服务器。

这将不起作用。您必须使用Materialhttp://来访问HTML文件,而不必打开本地文件。