我很少在nodejs中的Socket.io和EventEmitter API之间混淆。是的,我是事件驱动的NodeJS编程的新手。这两者之间有什么显着差异吗?或者一个已经超过另一个?它们是为了同一目的还是不同而设计的? 任何示例/资源链接,说明它们之间的差异将是很好的..
答案 0 :(得分:7)
你不应该比较EventEmitter
API和Socket.IO,因为它们是完全不同的东西并且是无关的,除了Socket.IO在服务器端和客户端都使用事件。< / p>
EventEmitter
API由发出事件的任何内容使用,例如,HTTP服务器,流,文件操作等。它们的使用方式如下:
var EventEmitter = require('events').EventEmitter;
// create a new instance
var em = new EventEmitter();
// attach a handler to an event named "event"
em.on('event', function() {
});
// fire the "event" event
em.emit('event');
另一方面,Socket.IO是一个用于跨浏览器实时数据传输的库。它用于将数据从客户端发送到服务器,或从服务器发送到客户端。
// on the server side
var io = require('socket.io');
io.sockets.on('connection', function(socket) {
socket.emit('event');
});
// on the client side
var socket = io.connect();
socket.emit('data');