# socket-signal-websocket

> socket-signal through simple-websocket

Latest version **10.0.7** (published 2022-03-29) · MIT license · 0 weekly downloads

## Install

```sh
npm install socket-signal-websocket
pnpm add socket-signal-websocket
yarn add socket-signal-websocket
bun add socket-signal-websocket
```

Provides the command `socket-signal-websocket`.

## Health

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

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 10.0.7 |
| Published | 2022-03-29 |
| First published | 2020-03-15 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM |
| Dependencies | 7 |
| Unpacked size | 11.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 6 |
| Author | GEUT |
| Maintainers | tinchoz49 |
| Keywords | socket-signal, webrtc, websocket |

## Links

- npm: https://www.npmjs.com/package/socket-signal-websocket
- Repository: https://github.com/geut/socket-signal-websocket
- Homepage: https://github.com/geut/socket-signal-websocket#readme
- Issues: https://github.com/geut/socket-signal-websocket/issues
- npm.io page: https://npm.io/package/socket-signal-websocket

## Dependencies (7)

- [ws](https://npm.io/package/ws.md) ^8.2.1
- [delay](https://npm.io/package/delay.md) ^5.0.0
- [minimist](https://npm.io/package/minimist.md) ^1.2.5
- [socket-signal](https://npm.io/package/socket-signal.md) ^10.3.2
- [nanocustomassert](https://npm.io/package/nanocustomassert.md) ^1.0.0
- [simple-websocket](https://npm.io/package/simple-websocket.md) ^9.0.0
- [reconnecting-websocket](https://npm.io/package/reconnecting-websocket.md) ^4.4.0

## Alternatives

- [@opentelemetry/exporter-zipkin](https://npm.io/package/@opentelemetry/exporter-zipkin.md) — 14.8M weekly downloads
- [pusher-js](https://npm.io/package/pusher-js.md) — 2.0M weekly downloads
- [browserify](https://npm.io/package/browserify.md) — 1.7M weekly downloads
- [sqs-consumer](https://npm.io/package/sqs-consumer.md) — 1.7M weekly downloads
- [@sanity/eventsource](https://npm.io/package/@sanity/eventsource.md) — 930.8K weekly downloads

## Recent versions

- 10.0.7 (latest) — 2022-03-29
- 10.0.6 — 2022-02-20
- 10.0.5 — 2021-09-30
- 9.2.4 — 2021-09-02
- 10.0.4 — 2021-09-02
- 10.0.3 — 2021-09-02
- 9.2.3 — 2021-09-02
- 10.0.2 — 2021-09-02
- 10.0.1 — 2021-08-11
- 10.0.0 — 2021-08-04
- 9.2.2 — 2021-06-30
- 9.2.1 — 2021-03-20
- 9.2.0 — 2021-03-19
- 9.1.0 — 2021-02-04
- 9.0.2 — 2020-08-23
- … 19 more at https://npm.io/package/socket-signal-websocket/versions

## README

# socket-signal-websocket

[![Build Status](https://travis-ci.com/geut/socket-signal-websocket.svg?branch=master)](https://travis-ci.com/geut/socket-signal-websocket)
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)

> socket-signal through simple-websocket and reconnecting support

## <a name="install"></a> Install

```
$ npm install socket-signal-websocket
```

## <a name="usage"></a> Usage

### Server

```
$ npx socket-signal-websocket [--port=4000]
```

### Client

```javascript
const { SocketSignalWebsocketClient } = require('socket-signal-websocket')

// you can define multiple server urls for fallback reconnections
const client = new SocketSignalWebsocketClient([
  'ws://localhost:4000',
  'ws://localhost:4001',
  'ws://localhost:4002'
], {
  heartbeat: {
    interval: 10 * 1000,
    timeout: 5 * 1000
  },
  simpleWebsocket: {}, // https://github.com/feross/simple-websocket options
  reconnectingWebsocket: {}, // https://github.com/pladaria/reconnecting-websocket options
  simplePeer: {} // https://github.com/feross/simple-peer options
})

;(async () => {
  await client.open()

  client.onIncomingPeer(async (peer) => {
    if (validPeer(peer)) return
    throw new Error('invalid peer')
  })

  const peersForThatTopic = await client.join(topic)

  const remotePeer = client.connect(topic, peersForThatTopic[0])

  try {
    await remotePeer.ready()
    // SimplePeer connected
  } catch(err) {
    // SimplePeer rejected
  }
})()
```

## <a name="issues"></a> Issues

:bug: If you found an issue we encourage you to report it on [github](https://github.com/geut/socket-signal-websocket/issues). Please specify your OS and the actions to reproduce it.

## <a name="contribute"></a> Contributing

:busts_in_silhouette: Ideas and contributions to the project are welcome. You must follow this [guideline](https://github.com/geut/socket-signal-websocket/blob/master/CONTRIBUTING.md).

## License

MIT © A [**GEUT**](http://geutstudio.com/) project

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