Node.js的进程间和服务器间事件发射器/侦听器? [英] Inter-process and inter-server event emitter/listener for Node.js?

查看:21
本文介绍了Node.js的进程间和服务器间事件发射器/侦听器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前,我在应用程序内部使用EventEmitter2作为消息总线,我真的很喜欢它。

不管怎样,现在我需要一个不仅能在进程内工作,而且能在进程间工作的消息总线。我的理想人选是…

  • …与EventEmitter2(替代方案)兼容API,
  • …无需专用服务器或外部服务(如数据库、消息队列、…)即可工作,仅使用操作系统资源,
  • …用纯JavaScript编写,
  • …在内存中运行,因此不需要持久性。

我所做的不需要

  • 它不需要在Windows上运行,OS X和Linux都可以。
  • 如果它只在一台计算机上工作,也可以,它不需要是网络感知的。

有什么想法或提示吗?

PS:如果你能推荐一款可用的产品是可以的,但如果你能给我指个方向,告诉我如何自己做这件无服务器的事情,也是很好的。

推荐答案

这是我看到的选项。

  1. cess.fork/Send。如果两个进程都是节点,则节点核心通过此API提供简单的事件驱动的IPC机制。它与process.fork配对,因此如果您的进程是一个基于节点的主进程和几个基于节点的辅助/支持子进程,process.send可能是一个可行的选择。http://nodejs.org/docs/latest/api/all.html#all_child_process_fork_modulepath_args_options

    • 基于事件,但不是EventEmitter2插件
    • 双向
    • 高效
    • 仅使用操作系统资源
    • 内存中
    • Java脚本
  2. 使用节点核心的TCP网络通过Unix域套接字进行连接。http://nodejs.org/docs/latest/api/all.html#all_net_connect_options_connectionlistener

    • 仍然是基于事件的原始数据流,而不是高级消息
    • 双向
    • 内存中
    • Java脚本
  3. 好旧的tcp。

    • 仍然是基于事件的原始数据流,而不是高级消息
    • 双向
    • 内存中
    • Java脚本
  4. 节点到节点socket.io

    • 基于事件,但不是EventEmitter2插件
    • 双向
    • 内存中
    • Java脚本
在所有情况下,连接后都会进行双向通信,但始终存在第一个对等点(tcp或Socket.IO中的服务器,进程.fork中的父进程)和第二个对等点(tcp或Socket.IO中的客户端,进程.fork中的子进程)的概念。

这篇关于Node.js的进程间和服务器间事件发射器/侦听器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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