这绝对是一个非常幼稚的问题,因为我是 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>
服务器: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时,输出应该显示在执行服务器程序的终端上还是其他东西上?如果我需要检查客户端控制台上的输出,我应该在浏览器中的哪里寻找?
希望有人能告诉我这个基本概念,我搜索了很多,但我相信这太简单了,大多数人只是假设人们知道它,所以我没有得到太多。