NodeJS中SocketIO和EventEmitter的异同 [英] Similarity/Difference between SocketIO and EventEmitter in NodeJS

查看:23
本文介绍了NodeJS中SocketIO和EventEmitter的异同的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am little confuse between Socket.io and EventEmitter API in nodejs. Yes, I am quite new in event driven NodeJS programming. Is there any significant difference between this two ? or one have made over the other one ? are they designed to serve the same purpose or different ?
Any example/resource link, illustrating difference between them would be nice..

推荐答案

你不应该比较 EventEmitter API 和 Socket.IO,因为它们是完全不同的东西,除了事实之外没有任何关系Socket.IO 在服务器端和客户端都使用事件.

You shouldn't compare the EventEmitter API and Socket.IO, as they are completely different things and are unrelated except for the fact that Socket.IO uses events, both on the server side and client side.

EventEmitter API 可用于任何发出事件的事物,例如 HTTP 服务器、流、文件操作等.它们的使用方式如下:

The EventEmitter API is used by anything that emits events, for example, a HTTP server, streams, file operations, etc. They are used like this:

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 是一个用于跨浏览器实时数据传输的库.用于从客户端向服务器发送数据,或从服务器向客户端发送数据.

Socket.IO on the other hand, is a library for cross-browser realtime data transport. It is used to send data from a client to a server, or from a server to a client.

// 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');

这篇关于NodeJS中SocketIO和EventEmitter的异同的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆