https://github.com/blackglory/extra-websocket
🌲
https://github.com/blackglory/extra-websocket
esm library nodejs npm-package typescript
Last synced: 6 months ago
JSON representation
🌲
- Host: GitHub
- URL: https://github.com/blackglory/extra-websocket
- Owner: BlackGlory
- License: mit
- Created: 2022-05-27T06:29:26.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-08-01T05:50:43.000Z (almost 2 years ago)
- Last Synced: 2025-03-04T21:38:52.814Z (over 1 year ago)
- Topics: esm, library, nodejs, npm-package, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/extra-websocket
- Size: 659 KB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# extra-websocket
## Install
```sh
npm install --save extra-websocket
# or
yarn add extra-websocket
```
## API
### ExtraWebSocket
```ts
import { WebSocket, Event as OpenEvent, MessageEvent, ErrorEvent, CloseEvent } from 'ws'
import { Emitter } from '@blackglory/structures'
enum BinaryType {
NodeBuffer
, ArrayBuffer
, Fragments
}
enum State {
Closed
, Connecting
, Connected
, Closing
}
class ExtraWebSocket extends Emitter<{
open: [event: OpenEvent]
message: [event: MessageEvent]
error: [event: ErrorEvent]
close: [event: CloseEvent]
}> {
constructor(createWebSocket: () => WebSocket)
getState(): State
getBinaryType(): BinaryType
setBinaryType(val: BinaryType): void
connect(signal?: AbortSignal): Promise
close(code?: number, reason?: string): Promise
send(data: string | ArrayBufferLike | Buffer | TypedArray | DataView): void
ping(): void
}
```
### autoReconnect
```ts
function autoReconnect(
ws: ExtraWebSocket
, reconnectInterval: number = 0
, connectTimeout?: number
): () => void
```
### autoReconnectWithExponentialBackOff
```ts
function autoReonnectWithExponentialBackOff(
ws: ExtraWebSocket
, reconnectInterval: {
baseInterval: number
maxInterval?: number = Infinity
factor?: number = 2
jitter?: boolean = true
}
, connectTimeout?: number
): () => void
```
### startHeartbeat
```ts
function startHeartbeat(ws: ExtraWebSocket, interval: number): () => void
```