[aerogear-dev] [AeroGear-Notifier] Client API
Kris Borchers
kris at redhat.com
Thu Feb 21 15:15:14 EST 2013
Yeah, this is meant to be more of an abstract spec as opposed to actual usage. What your suggesting is more of an implementation detail and is similar to what I have in my head. How I have imagined this is where you started going with "clients" which maintain a number of channels. That is definitely where I would be headed with this in my head along the same lines as a Pipeline (Notifier) has pipes (some name like clients).
On Feb 21, 2013, at 2:00 PM, Sebastien Blanc <scm.blanc at gmail.com> wrote:
> That looks great !
> Maybe one suggestion, like the PipeManager holds Pipe objecst and the DataStore hold Store objects, maybe the Notifier could hold Channels ?
>
>
> var myChannel = AeroGear.Notifier.addChannel(String channel);
> myChannel.onMessage(data);
> myChannel.publishMessage(data);
>
>
> And maybe pushing the concept further, the notifier could hold "clients" which holds channels ...
>
>
>
> On Thu, Feb 21, 2013 at 6:38 PM, Matthias Wessendorf <matzew at apache.org> wrote:
> Hello!
>
> Today, I had a brief chat with Kris about a potential AeroGear Notifier Client API...
>
> The basic idea is to wrap messaging APIs (e.g. Stomp.js, Vertx's eventbus or Socket.io/Engine.io) behind a common client 'interface'.
>
> Basically the AeroGear-Notifier should be able to connect to a messaging system in order to subscribe to a channel to reveice messages from that channel. The AG-Notifier is also able to publish messages to ANY channel. Of course,unsubscribe and disconnect are required too...
>
> Sure... the above is not (YET) really a SPEC, but it's start.... the JS API of the AG-Notifier (DRAFT 0.0.1) could looks like this:
>
> /**
> * Connects to a given URL. The callback is invoked after a connection has been established. In case of an error, an Error
> * object will be passed to the callback
> */
> AeroGear.Notifier.connect(String url, function callback);
>
> /**
> * Tears down the connection. The callback is invoked after a connection has been closed. In case of an error, an
> * Error object will be passed to the callback
> */
> AeroGear.Notifier.disconnect(function callback);
>
> /**
> * Subscribes to a channel. The callback function is invoked for every message, received on the given channel.
> */
> AeroGear.Notifier.subscribe(String channel, function callback);
>
> /**
> * Removes the subscription of the given channel.
> */
> AeroGear.Notifier.unsubscribe(String channel);
>
> /**
> * Publishes a message to a given channel
> */
> AeroGear.Notifier.publish(String channel, Object message);
> Perhaps a STATE-MASHINE would be nice as well:
>
> AeroGear.Notifier.CONNECTING = 0;
> AeroGear.Notifier.OPEN = 1;
> AeroGear.Notifier.CLOSING = 2;
> AeroGear.Notifier.CLOSED = 3;
> Implementation of the Adapters
> The different adapter implementations will be done separately: ag-notifier-vertx.js...
>
>
> Thoughts ?
>
>
>
>
> --
> Matthias Wessendorf
>
> blog: http://matthiaswessendorf.wordpress.com/
> sessions: http://www.slideshare.net/mwessendorf
> twitter: http://twitter.com/mwessendorf
>
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/aerogear-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/aerogear-dev/attachments/20130221/fec31bcc/attachment.html
More information about the aerogear-dev
mailing list