Socket.io事件不会触发,也无法从客户端发出

时间:2013-03-28 10:52:44

标签: node.js socket.io

所以我试图用nodejs和socket.io

设置一个新项目

首先我在家里的电脑上尝试这些代码:http://socket.io/#how-to-use

我尝试了第一个例子,它运行良好,所以我继续在家用电脑上工作。

但是,当我在我的工作电脑上尝试时,我的工作无效 即使网络上的第一个例子也不起作用 客户端没有从服务器收到发出的“新闻”事件 并且客户端不向服务器发出“我的其他事件” 客户端浏览器没有错误,我已经尝试过我使用的所有浏览器(firefox,即Chrome和Chrome都是最新版本)

为什么客户端不向服务器发出事件,客户端无法从服务器接收发出的数据?

有什么问题?是我工作的电脑吗?因为我已经用3台不同的电脑试过了,结果还是一样的。它只能在我的家用电脑上工作。 在我的工作电脑(win7 x86)我已经禁用了我的UAC和防火墙。

我使用nodejs v0.10.1,socket.io v0.9.13

这是我从socket.io中的示例中复制的代码:
client.html

<script src="./node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js"></script>

<script>
  var socket = io.connect('http://localhost:8999');

  setTimeout(function(){
    socket.emit('my other event', { my: 'emitted by timeout' }); // nothing happened at server
  },3000);

  socket.on('news', function (data) {
    console.log(data); // this won't fire
    socket.emit('my other event', { my: 'data' }); // this won't fire
  });
</script>

server.js

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

app.listen(8999);

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);
  });
});
从节点控制台输出

   info  - socket.io started
   debug - client authorized
   info  - handshake authorized c3Y6q0EnyWtldKBKnUHp
   debug - setting request GET /socket.io/1/websocket/c3Y6q0EnyWtldKBKnUHp
   debug - set heartbeat interval for client c3Y6q0EnyWtldKBKnUHp
   debug - client authorized for
   debug - websocket writing 1::
   debug - websocket writing 5:::{"name":"news","args":[{"hello":"world"}]}

0 个答案:

没有答案