在Socket.io上连接404

时间:2014-05-12 11:12:19

标签: node.js express socket.io

我使用socket.io网站示例中的代码并且有一些问题

我的服务器代码(在debian 192.168.5.200上)

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

server.listen(1337);

app.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.html');
});

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

我的客户端代码(index.html)

<script src="http://{host ip}:1337/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://{host ip}:1337');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });
</script>

我启动节点服务器 在浏览器中打开http:// {host ip}:1337 和...在socket.io连接上得到404

它尝试获取“/ api / 1 /?t = ...”url并通过表达“无法获取/ api / 1 /?t = ...”获得404错误

请帮帮我(

1 个答案:

答案 0 :(得分:0)

尝试将您的客户端代码更改为:

<script src="/socket.io/socket.io.js"></script>
<script>
    var socket = io.connect();
    socket.on("connect", function() {
        socket.on('news', function (data) {
            socket.emit('my other event', { my: 'data' });
        });
    });
</script>

此外,为了能够转到/api/1...,您需要注册相应的app.get,例如为app.get("/api/*", ...,它将处理与/api/...的所有连接。否则,预计您将收到404错误。