Create easily single instance application with two-way communication channel between master and client instances.
npm install singles
var Singles = require('singles');
// create new instance or connect to existing with a specified name
var app = new Singles('example-app');
app.on('error', function(err) {
// connection error
});
app.on('close', function() {
// connection closed
});
app.on('message', function(obj) {
// message received
});
if (app.master) {
// this is a master instance
app.on('connection', function(client) {
// client connected
// send only to specified client
client.send({ hello: 'client' });
});
// broadcast message to all clients, forever
setInterval(function() {
app.send({ time: new Date() });
}, 1000);
} else {
// this is a client instance
app.on('connect', function() {
app.send({hello: 'master'});
app.close();
});
}
Singles
is an EventEmitter
name
is an unique name of the application
client
Client connection, instance ofnet.Socket
Emitted when client connects to the master.
Emitted when master starts listening for incoming connections.
Emitted when client is connected to the master.
error
Error object
Emitted if something goes wrong with the connection.
Emitted when connection closed.
object
Received object
Emitted when received object from other instance.
true
if this instance is a master instance.
Try connecting to a master instance
Create master connection
Send object to the other instance. Sending from master instance will broadcast to all connected clients.
Close connection.