【问题标题】:Can't get socket.io client to connect to server无法让 socket.io 客户端连接到服务器
【发布时间】:2021-02-14 04:51:05
【问题描述】:

我正在尝试使用 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');
});

【问题讨论】:

  • double-clicking on html file 你的问题。您的 HTML 文件应该由不直接来自您计算机的服务器提供服务 =)

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


【解决方案1】:

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

这行不通。您必须使用 http://https:// 访问 HTML 文件,而不是打开本地文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 2015-09-12
    • 2012-10-15
    相关资源
    最近更新 更多