Ich entwickle eine node.js Social-Networking-Anwendung mit senecajs und muss ein Szenario implementieren, wo ein Hersteller die gleiche Nachricht an mehrere Verbraucher senden kann. Ich habe einen Artikel gefunden, der Beispielcode zu illustrieren scheint, um dies mit Senecajs zu entfernen. Das Problem ist, dass ich versuche, dies zu meinem Szenario zu übersetzen, hier ist das Beispiel aus diesem Artikel (https://github.com/senecajs/seneca-amqp-transport/issues/27):Implementierung von Fanout-Strategie mit senecajs
Ich habe 1 Client veröffentlichen Ereignis zu 2 Listener.
Auftraggeber:
.client({
type: 'amqp',
pin: 'incomingMessage:*',
url: process.env.AMQP_URL,
exchange: {
name: process.env.NODE_ENV + ':events',
type: 'fanout'
}
});
Hörer:
.listen({
type: 'amqp',
pin: 'incomingMessage:*', //maybe useless
url: process.env.AMQP_URL,
name: process.env.NODE_ENV + ':service1',
exchange: {
name: process.env.NODE_ENV + ':events',
type: 'fanout'
}
});
.listen({
type: 'amqp',
pin: 'incomingMessage:*', //maybe useless?
url: process.env.AMQP_URL,
name: process.env.NODE_ENV + ':service2',
exchange: {
name: process.env.NODE_ENV + ':events',
type: 'fanout'
}
});
Es gibt ein paar Dinge sind verwirrend:
Für die Client-Einstellungen, so scheint es, als ob der Name endet "Entwicklung: Ereignisse" oder "Produktion: Ereignisse" sein. Bin ich in diesem Denken richtig?
Für das Namensfeld für den Listener außerhalb des Exchange-Objekts, was ist der Zweck dieses Feldes?
Wenn ich das Add-Methode aufrufen, muss ich in einem Namen zu übergeben, die zu den Funktionsaufruf zuordnet, die gemacht wird, wenn der Hörer eine Nachricht empfängt, würde ich die „incoming: *“ pass auf das Add Anruf?
Wird dieser Code effektiv Fanout-Funktionalität mit Senecajs bereitstellen?