【发布时间】:2015-11-18 03:40:42
【问题描述】:
我对 socket.io 很困惑,我正在尝试使用 socket.io 在 node.js 中创建一个简单的聊天服务器应用程序。我有几个问题想请教一下
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
io.on('connection', function(socket) {
io.emit('online');
console.log('user is online');
socket.on('disconnect', function() {
io.emit('user is disconnected');
console.log('user is disconnected');
});
socket.on('chat', function(msg) {
console.log("message: " + msg);
io.emit('chat', msg);
});
socket.broadcast.emit('user connected');
});
server.listen(3000);
1) 基于上述代码,我不明白为什么我们需要在io.on('connection') 中再次调用io 变量,我可以只使用socket 来代替吗?
2) socket 变量是什么? io和socket有什么区别?
3) 什么是io.emit 和io.on 或socket.emit 和socket.on?
我知道io是socket.io服务器,但是为什么我们需要使用io.emit而不是socket.emit?
因为我是刚开始学习node.js和socket.io的新手,请详细解释一下。请不要对我太苛刻:)
【问题讨论】:
-
您需要了解更多关于 Javascript 和一般编程的知识。如果您具备必备知识,这些问题的答案对您来说是显而易见的。换句话说,你正在尝试建造一艘宇宙飞船,甚至不知道如何做代数。
-
如果您是 node 新手,我建议您参加 nodeschool 研讨会,而不是一开始就尝试自己构建应用程序,nodeschool.io/#workshoppers