如何构build一个消息总线与Node.js和API分布在几个听众?

这是我想要发生的事情:

我的用户会打到一个端点,比如/api/findFile/app.jsexpress正在监听这个调用(标准的RESTtypes的东西),并会联系几个工作人员(可以是任意数量)要求他们执行工作,具体查找文件。 当第一个这样做的时候,它应该回应express的function,以便将结果发回给用户。

我想像某种消息总线/ AMQP设置将需要。 我认为快递function可以向工作人员publish请求,每个人都subscribe这个事件:

 bus.publish('findFile', {fileName: 'app.js'}}; 

沿着这些线的东西。 工人有:

 bus.subscribe('findFile', function(event) {.... 

每个工人将检查它是否有硬盘上的文件。 该文件可以在MULTIPLE工作盘上。 所以当第一个find它的时候,我想以某种方式中止别人回来expression。

为了回到expression,我想我们会做一个反向的pub/sub订阅,这次是明确地听取回应?

任何想法如何正确地devise这个? 特别是与比赛条件。

你可以使用socket.io 。 它是一个事件驱动的客户端 – 服务器pub-sub框架,可以很好地与express