首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js Socket.io错误路径

Node.js Socket.io错误路径
EN

Stack Overflow用户
提问于 2014-01-04 20:25:59
回答 1查看 994关注 0票数 0

我正在game.html上试验这个问题

代码语言:javascript
复制
GET http://localhost/socket.io/socket.io.js 404 (Not Found) game.html:1
Uncaught ReferenceError: io is not defined game.html:3

我的game.html文件

代码语言:javascript
复制
    <script src="/socket.io/socket.io.js"></script>
    <script>
     var socket = io.connect('http://localhost/game.html');
     socket.on('news', function (data) {
     console.log(data);
     socket.emit('my other event', { my: 'data' });
    });
    </script>

还有我的server.js

代码语言:javascript
复制
    var app = require('http').createServer(handler)
  , io = require('socket.io').listen(app)
  , fs = require('fs')

app.listen(5667);

function handler (req, res) {
  fs.readFile(__dirname + '/game.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' });
});

当我使用index.html而不是game.html时,它运行得很好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-04 20:44:54

看起来您没有从Node应用程序中检索game.html,因为socket.io.js文件似乎是从运行在端口80上的HTTP端口检索的,而您的Node应用程序则运行在端口5667上。

此外,客户端连接字符串不正确:

代码语言:javascript
复制
var socket = io.connect('http://localhost/game.html');

它还试图联系端口80上的服务器(我不知道game.html在那里做什么)。

所以试试这个:

  • 将客户端连接字符串更改为var socket = io.connect();
  • 启动Node应用程序
  • 在浏览器中打开http://localhost:5667/

看看能不能更好点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20926316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档