# singles

> Single instance application with two-way communication between master and client.

Latest version **0.1.0** (published 2015-01-12) · 0 weekly downloads

## Install

```sh
npm install singles
pnpm add singles
yarn add singles
bun add singles
```

## Health

**Score 10/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; low quality score; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.0 |
| Published | 2015-01-12 |
| First published | 2015-01-12 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Harri Kovalainen |
| Maintainers | hakovala |

## Links

- npm: https://www.npmjs.com/package/singles
- Repository: https://github.com/hakovala/node-singles
- Issues: http://github.com/hakovala/node-singles/issues
- npm.io page: https://npm.io/package/singles

## Dependencies (2)

- [death](https://npm.io/package/death.md) ^0.1.0
- [debug](https://npm.io/package/debug.md) ^2.1.1

## Recent versions

- 0.1.0 (latest) — 2015-01-12

## README

# Singles

Create easily single instance application with two-way communication channel between master and client instances.

## Install

[![NPM](https://nodei.co/npm/singles.png?downloads=true)](https://nodei.co/npm/singles/)

```js
npm install singles
```

## Usage

```js
var Singles = require('singles');

// create new or connect to instance with 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();
	});
}
```

## API

`Singles` is an EventEmitter

### new Singles(name)

 - `name` is an unique name of the application

### Event: 'connection' (master only)

 - `client` Client connection

Emitted when client connects to the master.

### Event: 'listening' (master only)

Emitted when master starts listening for incoming connections.

### Event: 'connect' (client only)

Emitted when client is connected to the master.

### Event: 'error'

 - `error` Error object

Emitted if something goes wrong with the connection.

### Event: 'close'

Emitted when connection closed.

### Event: 'message'

 - `object` Received object

Emitted when received object from other instance.

### Singles#master

`true` if this instance is a master instance.

### Singles#connect()

Try connecting to a master instance

### Singles#createServer()

Create master connection

### Singles#send(object)

Send object to the other instance.
Sending from master instance will broadcast to all connected clients.

### Singles#close()

Close connection.

---
_Source: https://npm.io/package/singles · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
