8.0.7 • Published 4 months ago

observable-socket v8.0.7

Weekly downloads
244
License
MIT
Repository
github
Last release
4 months ago

Build Status Known Vulnerabilities Standard - JavaScript Style Guide npm version semantic-release

observable-socket

An observable socket, no duh. Tested with ws and window.WebSocket.

observable-socket assumes Promise is available. If you're targeting an environment that does not support native Promises, use babel-polyfill or something similar.

Usage

install it.

npm i observable-socket

import and use it.

const ObservableSocket = require('observable-socket')
const WS = require('ws')

/**
 * Create an echo socket by connecting to the echo socket provided by
 * websocket.org.
 */
const echoSocket = ObservableSocket.create(new WS('wss://echo.websocket.org'))

/**
 * Subscribing to `echoSocket` receives messages from the underlying
 * WebSocket.
 */
echoSocket.down.subscribe(
  function next (msg) {
    console.log(msg.data)
  },

  function error (e) {
    console.error('uh oh! ', e)
  },

  function complete () {
    console.warn('Socket has closed')
  }
)

/**
 * We can send messages too!
 */
echoSocket.up('hi!')
<script type="text/javascript">
    window.debug = lbl => msg => console.log(`${lbl}: ${msg}`) // debug however you like
</script>
<script type="text/javascript" src="https://unpkg.com/rxjs/bundles/rxjs.umd.min.js"></script>
<script type="text/javascript" src="https://unpkg.com/observable-socket@6.0.0/dist/browser.min.js"></script>

<script>
    var socket = ObservableSocket.create(new WebSocket('wss://echo.websocket.org'))

    // Send messages up the socket
    socket.up('hello')

    // Receive messages down the socket
    socket.down.subscribe(
        msg => console.log(msg.data),
        () => console.log('done'),
        err => console.error(err)
    )
</script>

API

This module exports a function that takes a WebSocket, and returns an object with two properties, up and down.

socket.up

up is a function to push messages up the socket. This will create a queue of messages that will not be sent until the socket is connected.

socket.down

down is an RxJS stream. You can subscribe to it.

Reconnecting...

observable-socket does not construct WebSockets, therefore there isn't a notion of "healing" a connection. Instead, when a socket drops, the complete of observable-socket is called, which can be leveraged into creating a new socket, and re-wrapping observable-socket around it. An example of how this can be done:

Bundles and packages and boxes and goodies...

There are a few different bundles in dist/:

  • browser
  • commonjs
  • esm
8.0.7

4 months ago

8.0.6

1 year ago

8.0.5

1 year ago

8.0.4

2 years ago

8.0.3

2 years ago

8.0.2

2 years ago

8.0.1

2 years ago

8.0.0

2 years ago

7.0.8

3 years ago

7.0.7

3 years ago

7.0.6

3 years ago

7.0.9

3 years ago

7.0.5

3 years ago

7.0.4

4 years ago

7.0.3

4 years ago

7.0.2

4 years ago

7.0.1

4 years ago

7.0.0

5 years ago

6.1.3

5 years ago

6.1.2

5 years ago

6.1.1

5 years ago

6.0.1

7 years ago

6.0.0

7 years ago

5.2.0

7 years ago

5.1.0

8 years ago

5.0.3

8 years ago

5.0.2

8 years ago

5.0.1

8 years ago

5.0.0

8 years ago

5.0.0-beta3

9 years ago

5.0.0-beta2

9 years ago

5.0.0-beta1

9 years ago

4.0.0

9 years ago

3.0.2

9 years ago

3.0.1

9 years ago

2.1.0

10 years ago

2.0.6

10 years ago

2.0.5

10 years ago

2.0.4

10 years ago

2.0.3

10 years ago

2.0.1

10 years ago

2.0.0

10 years ago

2.0.0-0

10 years ago

1.1.1

10 years ago

1.1.0

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago

1.0.0-rc1

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago