# module MCollective::Connector

Connector plugins handle the communications with the middleware, you can provide your own to speak to something other than Stomp, your plugins must inherit from MCollective::Connector::Base and should provide the following methods:

connect - Creates a connection to the middleware, no arguments should get its parameters from the config receive - Receive data from the middleware, should act like a blocking call only returning if/when data

    was received.  It should get data from all subscribed channels/topics.  Individual messages
    should be returned as MCollective::Request objects with the payload provided

publish - Takes a target and msg, should send the message to the supplied target topic or destination subscribe - Adds a subscription to a specific message source unsubscribe - Removes a subscription to a specific message source disconnect - Disconnects from the middleware

These methods are all that’s needed for a new connector protocol and should hopefully be simple enough to not have tied us to Stomp.

Connectors take care of transporting messages between clients and agents, the design doesn’t your middleware to be very rich in features. All it really needs is the ability to send and receive messages to named queues/topics.

At present there are assumptions about the naming of topics and queues that is compatible with Stomp, ie.

/topic/foo.bar/baz /queue/foo.bar/baz

This is the only naming format that is supported, but you could replace Stomp with something else that supports the above, see MCollective::Connector::Stomp for the default connector.