Node.js的进程间事件发送器?

目前,我在应用程序中使用EventEmitter2作为消息总线,我非常喜欢它。

无论如何,现在我需要一个消息总线,它不仅在进程中工作,而且还在进程之间。 我理想的候选人会…

  • …与EventEmitter2(一个“插入replace”)API兼容,
  • …没有专门的服务器或外部服务(如数据库,消息队列等),仅使用操作系统资源,
  • …用纯JavaScript编写,
  • …在内存中运行,所以它不需要持久性。

我不需要的东西:

  • 它不需要在Windows上运行,OS X和Linux都可以。
  • 如果它只能在一台机器上运行,那就没有必要了。

任何想法或提示?

PS:如果你可以推荐一个可用的产品,那也挺好的,但是如果你能指出我自己如何做无服务器的东西,那也没关系。

我看到这些是你的select。

  1. process.fork /发送 。 如果两个进程都是节点,则节点核心通过此API提供一个简单的事件驱动的IPC机制。 它与process.fork配对,所以如果你的进程是一个基于节点的master和几个基于节点的worker / support子process.sendprocess.send可能是一个可行的select。 http://nodejs.org/docs/latest/api/all.html#all_child_process_fork_modulepath_args_options

    • 基于事件的,而不是EventEmitter2的插件
    • 双向
    • 高效
    • 只使用操作系统资源
    • 在记忆中
    • JavaScript的
  2. 使用节点核心的TCPnetworking通过unix域套接字进行连接。 http://nodejs.org/docs/latest/api/all.html#all_net_connect_options_connectionlistener

    • 基于事件的原始数据stream,而不是高级消息
    • 双向
    • 在记忆中
    • JavaScript的
  3. 很好的旧TCP。

    • 基于事件的原始数据stream,而不是高级消息
    • 双向
    • 在记忆中
    • JavaScript的
  4. 节点到节点的socket.io

    • 基于事件,但不是EventEmitter2插件
    • 双向
    • 在记忆中
    • JavaScript的

在所有情况下,一旦连接就会得到双向通信,但总是有第一个对等体(TCP或socket.io中的服务器,process.fork中的父进程)和第二个对等体(TCP或socket.io中的客户机)subprocess在process.fork)。