Skip to content

Latest commit

 

History

History

nlon-websocket

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.