https://github.com/jackyzha0/agnostic-ws
https://github.com/jackyzha0/agnostic-ws
Last synced: 7 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/jackyzha0/agnostic-ws
- Owner: jackyzha0
- Created: 2024-05-21T16:57:43.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-22T23:54:31.000Z (over 1 year ago)
- Last Synced: 2025-03-19T15:59:34.469Z (7 months ago)
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/agnostic-ws
- Size: 24.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# agnostic-ws
[isomorphic-ws](https://github.com/heineiuo/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 WebSocketthis is a very thing comptability shim around both WebSockets that
satisfies a common subset of the two APIs## usage
```bash
npm i agnostic-ws
```in code
```ts
import WebSocket from 'agnostic-ws';// your code that uses websockets
```## definitions
the type definition is as follows:```ts
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;
```