运行一个非常简单的socket.io示例的困惑?

时间:2012-06-01 04:16:44

标签: node.js socket.io

这是一个非常天真的问题,因为我是node.js的新手。

我正在运行网站上第一个简单的socket.io示例: http://socket.io/#how-to-use

客户:index.html:

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

server: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);
  });
});

根据我的理解,我假设将会发生的事情是,当服务器收到来自客户端的请求时,它会将客户端{my: 'data'}发出的数据输出到控制台,但是它应该发送给客户端数据{hello: 'world'},当客户端收到时,它也应该将数据记录到控制台?在终端控制台上,我只看到{my: 'data'}的每个请求。服务器是不是正确地将数据发送回客户端,还是我找错了地方?

显然我觉得我对一些非常基本的东西感到困惑,但是当告诉客户端在客户端javascript中执行console.log时,输出应该显示在执行服务器程序或其他的终端上吗?如果我需要在浏览器中查看客户端控制台上的输出,我应该在哪里查找?

希望有人可以告诉我这个基本概念,我搜索了很多,但我相信它太简单了,大多数人只是假设人们知道它所以我没有得到太多。

1 个答案:

答案 0 :(得分:4)

在Chrome浏览器窗口中的任意位置 - &gt;右键单击菜单 - &gt;检查元素。这将弹出主窗口底部的窗口。从标签'Elements','Resources','Network'选项列表中......导航到'Console'。所有控制台日志都显示在此处。