/SimpleQueue

Simple in-memory Queue for Node.js. It can be used from remote clients.

Primary LanguageJavaScriptOtherNOASSERTION

SimpleQueue

Simple in-memory queue for Node.js. It can be accessed by remote clients.

Installation

Via npm on Node:

npm install simplequeue

Reference it from your program:

var simplequeue = require('simplequeue');

Local Usage

Create queue, put and get message:

var sq = require('simplequeue');

// ....

var queue = sq.createQueue();
queue.putMessage('my data');

// ....

var newmessage = queue.getMessageSync(); // null if no message

// now, newmessage contains 'my daya'

// put another message

queue.putMessage('my new data');

// ....

// get the message with a callback

queue.getMessage(function (err, msg) {
    // now msg contains 'my new data'
});

There is a local Queue Server

var sq = require('simplequeue');
var server = new sq.createQueueServer();

Then, you can create a Queue by name

var queue = server.createQueue('myqueue');

If the queue already exists, the original queue is returned.

To get an existent queue

var queue = server.getQueue('myqueue');

If the queue doesn't exist, null is returned.

Remote Usage

Server side:

var localserver = sq.createQueueServer();

var server = sq.createRemoteServer(localserver);
server.listen(3000);

If you don't need a reference to the local server, it can be omitted:

var server = sq.createRemoteServer();
server.listen(3000);

Client side:

var client = sq.createRemoteClient();

client.on('remote', function(server) {
    server.getQueue('myqueue', function(err, queue) {
        if (err) {
            console.log(err);
            return;
        }
        
        queue.putMessage(new simplequeue.Message('my data'));
        
        // or you can get a message with a callback
        
        queue.getMessage(function(err, msg) {
            // ...
        });
    });

});

client.connect(port, host);

Development

git clone git://github.com/ajlopez/SimpleQueue.git
cd SimpleQueue
npm install
npm test

Samples

Versions

  • 0.0.1: Published.
  • 0.0.2: Published. More factory methods exposed, instead of direct 'classes'. It uses a new version of SimpleRemote (0.0.3)

Contribution

Feel free to file issues and submit pull requests — contributions are welcome.

If you submit a pull request, please be sure to add or update corresponding test cases, and ensure that npm test continues to pass.