7

我对 nodejs 中的 Socket.io 和 EventEmitter API 有点困惑。是的,我是事件驱动的 NodeJS 编程的新手。这两者之间有什么显着区别吗?还是一个已经超越了另一个?它们的设计目的是相同的还是不同的?
任何示例/资源链接,说明它们之间的区别会很好..

4

1 回答 1

13

您不应该比较EventEmitterAPI 和 Socket.IO,因为它们是完全不同的东西并且不相关,除了 Socket.IO 在服务器端和客户端都使用事件这一事实。

EventEmitterAPI 被任何发出事件的事物所使用,例如 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');
于 2013-10-04T14:46:40.793 回答