簡體   English   中英

工作 socket.io 演示收到錯誤消息

[英]Working socket.io demo getting error message with

我一直在尋找不使用 Express.js 的 socket.io 的工作演示,為什么這個示例不起作用:

服務器:

const server = require('http').createServer();
const io = require('socket.io')(server);
io.on('connection', client => {
  client.on('event', data => { /* … */ });
  client.on('disconnect', () => { /* … */ });
});
server.listen(3000);

客戶:

<script src="node_modules/socket.io/client-dist/socket.io.js"></script>
<script>
  const socket = io("http://localhost");
</script>

這給出了錯誤: polling-xhr.js:157 GET http://localhost/socket.io/?EIO=4&transport=polling&t=NwWVGV9 net::ERR_CONNECTION_REFUSED

發現了一些有用的東西:

服務器:

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

app.listen(80);

function handler(req, res) {
    var url;
    if (req.url == "/") {
        url = "/index.html";
    } else {
        url = req.url;
    }
    fs.readFile(__dirname + url, function (err, data) {
        if (err) {
            res.writeHead(404);
            res.end(JSON.stringify(err));
            return;
        }
        res.writeHead(200);
        res.end(data);
    });
}

io.on('connection', function (socket) {
    socket.emit('news', { hello: 'world' });
    socket.on('my other event', function (data) {
        console.log(data);
    });
    socket.on('disconnect', function () {
        console.log(socket.id + ' disconnect ('+ socket.client.conn.transport.constructor.name +')');
    });
});

客戶:

<script src="node_modules/socket.io/client-dist/socket.io.min.js"></script>
<script>
  var socket = io('http://localhost');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM