NodeJS中SocketIO和EventEmitter之间的相似/差异

时间:2013-10-04 06:10:11

标签: node.js eventemitter socket.io

我很少在nodejs中的Socket.io和EventEmitter API之间混淆。是的,我是事件驱动的NodeJS编程的新手。这两者之间有什么显着差异吗?或者一个已经超过另一个?它们是为了同一目的还是不同而设计的? 任何示例/资源链接,说明它们之间的差异将是很好的..

1 个答案:

答案 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');