jackyzha0 / agnostic-ws

Home Page:https://www.npmjs.com/package/agnostic-ws

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

agnostic-ws

isomorphic-ws is jank and basically does a dumb switch on platform without trying to do any sort of compat behaviour between ws and the Brower's WebSocket

this is a very thing comptability shim around both WebSockets that satisfies a common subset of the two APIs

usage

npm i agnostic-ws

in code

import WebSocket from 'agnostic-ws';

// your code that uses websockets

definitions

the type definition is as follows:

export interface AgnosticWebSocket {
  readyState: ReadyState;
  readonly binaryType: "arraybuffer";
  onopen: OpenHandler | null;
  onclose: CloseHandler | null;
  onerror: ErrorHandler | null;
  onmessage: MessageHandler | null;

  send(data: BufferLike): void
  close(code?: number, reason?: string): void
}

export type BufferLike =
  | Buffer
  | Uint8Array;

export type OpenEvent = {
  target: AgnosticWebSocket;
  type: "open";
}

export type CloseEvent = {
  target: AgnosticWebSocket;
  type: "close";
  code: number;
  reason: string;
  wasClean: boolean;
}

export type MessageEvent = {
  target: AgnosticWebSocket;
  type: "message";
  data: BufferLike;
}

export type ErrorEvent = {
  target: AgnosticWebSocket;
  type: "error";
  error: Error;
}

export type OpenHandler = (ev: OpenEvent) => void;
export type CloseHandler = (ev: CloseEvent) => void;
export type MessageHandler = (ev: MessageEvent) => void;
export type ErrorHandler = (ev: ErrorEvent) => void;

About

https://www.npmjs.com/package/agnostic-ws


Languages

Language:TypeScript 100.0%