我如何使用socket.io?

时间:2017-05-02 09:53:07

标签: node.js sockets socket.io

美好的一天,我正在尝试使用socket.io我面临404 not found的一些问题。我正在使用:84作为我的xampp端口

文件夹结构

--tests
     --node_modules
  --app.js
  --index.html

这是我的html内容

<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.7.3/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost:84/test/');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });

</script>

app.js

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

app.listen(8080);

function handler (req, res) {
  fs.readFile(__dirname + '/index.html',
  function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading index.html');

    }

    res.writeHead(200);
    res.end(data);
  });
}

io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});

我对设置这部分感到有点困惑

  var socket = io.connect('http://localhost:84/test/');

和这部分

app.listen(8080);

我正在使用Windows 7 64位,我正在使用xampp来运行它。当我运行它时,我得到404错误,如此

"NetworkError: 404 Not Found - http://localhost:84/socket.io/?EIO=3&transport=polling&t=Ll8amII" 

我该如何解决?抱歉我的英语,并提前感谢。

1 个答案:

答案 0 :(得分:1)

您正在连接错误的端口。

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

XAMPPexpress无关。