1.2.1 • Published 1 year ago

@elementbound/nlon-websocket v1.2.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

nlon-websocket

WebSocket adapter for nlon.

Since nlon by itself is not concerned by the actual method of data transfer, adapters can be used to apply the protocol over various media.

This package provides such an adapter for use with WebSockets.

Under the hood, this package uses isomorphic-ws, which delegates to either ws or the browser's WebSocket implementation, depending on where it's used.

To see nlon running in the browser, see the websocket-chat example.

Install

  • pnpm: pnpm add @elementbound/nlon-websocket
  • npm: npm i @elementbound/nlon-websocket
  • yarn: yarn add @elementbound/nlon-websocket

Usage

This package provides factory methods both for wrapping existing WebSockets or creating new ones.

Server

Wrap an existing server instance:

import { wrapWebSocketServer } from '@elementbound/nlon-websocket'
import ws from 'isomorphic-ws'

const wss = new ws.WebSocketServer({
  host: 'localhost',
  port: 63636
})

const nlonServer = wrapWebSocketServer(wss)

Create a new WebSocket server and wrap in nlon:

import { createWebSocketServer } from '@elementbound/nlon-websocket'

const nlonServer = createWebSocketServer({
  host: 'localhost',
  port: 63636
})

Access the WebSocketServer instance behind the nlon Server with nlonServer.server.

These only work in Node, no WebSocket server implementation is available in the browser.

Peer

Wrap an existing socket:

import { wrapWebSocketPeer } from '@elementb/nlon-websocket'
import ws from 'isomorphic-ws'

const ws = new WebSocket('ws://localhost:63636/')
const nlonPeer = wrapWebSocketPeer(ws)

Connect to WS server and wrap in nlon Peer:

import { createWebSocketPeer } from '@elementb/nlon-websocket'

const nlonPeer = createWebSocketPeer({
  address: 'ws://localhost:63636/'
})

Access the WebSocket instance behind the nlon Peer with nlonPeer.socket.

Documentation

  • API docs
    • Or generate your own with JSDoc: pnpm doc

License

This package is under the MIT License.

1.2.1

1 year ago

1.1.0

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago