msgflo-nodejs v0.11.1
msgflo-nodejs 
MsgFlo is a distributed, polyglot FBP (flow-based-programming) runtime. It integrates with other FBP tools like the Flowhub visual programming IDE.
This library makes it easy to create MsgFlo participants in JavaScript/CoffeScript on node.js.
Status
Production
- Used at TheGrid for all workers using AMQP/RabbitMQ, including in imgflo-server
- Also used by noflo-runtime-msgflo
- Experimental support for MQTT and direct transports
Licence
MIT, see ./LICENSE
Usage
Add as an NPM dependency
npm install --save msgflo-nodejsA simple participant (CoffeeScript)
msgflo = require 'msgflo-nodejs'
RepeatParticipant = (client, role) ->
definition =
component: 'Repeat'
icon: 'file-word-o'
label: 'Repeats in data without changes'
inports: [
id: 'in'
type: 'any'
]
outports: [
id: 'out'
type: 'any'
]
process = (inport, indata, callback) ->
return callback 'out', null, indata
return new msgflo.participant.Participant client, definition, process, role
client = msgflo.transport.getClient 'amqp://localhost'
worker = RepeatParticipant client, 'repeater'
worker.start (err) ->
throw err if err
console.log 'Worker started'If you expose the participant factory function (examples/Repeat.coffee)
module.exports = RepeatParticipantThen you can use the msgflo-nodejs exectutable to start participant
msgflo-nodejs --name repeater ./examples/Repeat.coffeeDebugging
msgflo-nodejs uses the debug NPM module. You can enable (all) logging using:
export DEBUG=msgflo*Supporting other transports
msgflo-nodejs has a transport abstraction layer. So to support a new messaging system,
implement Client and MessageBroker interfaces.
You can then pass the Client instance into a Participant.
Or you can register a new transport using msgflo.transport.register('mytransport', myTransportModule).
Then you can get a Client instance using msgflo.transport.getClient('mytransport://somehost:666').
This has the advantage of also working when specifying the broker URL using
msgflo-nodejs --broker or MSGFLO_BROKER= environment variable.
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago