【问题标题】:Socket.io and Express3 - 404 on client request to /socket.io/socket.io.jsSocket.io 和 Express3 - 404 客户端请求 /socket.io/socket.io.js
【发布时间】:2013-05-21 07:41:34
【问题描述】:

我在尝试从我的 Node 服务器解析“/socket.io/socket.io.js”时收到 404。我无法确定为什么。

我的服务器配置如下:

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


// use ejs-locals for all ejs templates:
app.engine('ejs', engine);

app.set('views',__dirname + '/views');
app.set('view engine', 'ejs'); // so you can render('index')
app.use(express.static(__dirname + '/public'));

//define routes
...

app.listen(3000);



//socket io
io.sockets.on('connection', function (socket) {
  socket.on('set nickname', function (name) {
    socket.set('nickname', name, function () {
      socket.emit('ready');
    });
  });

  socket.on('msg', function () {
    socket.get('nickname', function (err, name) {
      console.log('Chat message by ', name);
    });
  });
});  

在客户端我有这个:

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

我正在本地测试这个(端口:3000)。 Socket 代码基本上是从 socket.io 示例中窃取的,以使某些东西正常工作。我已经查看了其他帖子,但似乎无法找到我要去哪里错了。有人可以帮忙吗?

谢谢

【问题讨论】:

    标签: node.js express websocket socket.io


    【解决方案1】:

    知道了!

    HTTP 服务器需要在端口上列出(在本例中为 3000)。然后我删除了 app.listen(3000),因为该地址已经在使用中并且不需要了。

    谢谢!

    var express = require('express')
      , engine = require('ejs-locals')
      , app = express()
      , http = require('http')
      , server = http.createServer(app).listen(3000)
      , io = require('socket.io').listen(server);
    

    【讨论】:

      猜你喜欢
      • 2017-02-02
      • 1970-01-01
      • 2013-07-18
      • 2013-11-06
      • 2014-11-20
      • 1970-01-01
      • 2018-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多