Files
smartsocket/ts/smartsocket.pluginstyped.ts
Juergen Kunz 1d62c9c695 Refactor smartsocket implementation for improved WebSocket handling and message protocol
- Updated test files to use new testing library and reduced test cycles for efficiency.
- Removed dependency on smartexpress and integrated direct WebSocket handling.
- Enhanced Smartsocket and SmartsocketClient classes to support new message types and authentication flow.
- Implemented a new message interface for structured communication between client and server.
- Added external server support for smartserve with appropriate WebSocket hooks.
- Improved connection management and error handling in SocketConnection and SocketRequest classes.
- Cleaned up code and removed deprecated socket.io references in favor of native WebSocket.
2025-12-03 02:20:38 +00:00

47 lines
1.4 KiB
TypeScript

// node native
import type * as http from 'http';
import type * as https from 'https';
export type { http, https };
// third party scope - ws types
import type * as wsTypes from 'ws';
export namespace ws {
export type WebSocket = wsTypes.WebSocket;
export type WebSocketServer = wsTypes.WebSocketServer;
export type RawData = wsTypes.RawData;
}
// smartserve compatibility interface (for setExternalServer)
// This mirrors the IWebSocketPeer interface from smartserve
export interface ISmartserveWebSocketPeer {
id: string;
url: string;
readyState: 0 | 1 | 2 | 3;
protocol: string;
extensions: string;
send(data: string): void;
sendBinary(data: Uint8Array | ArrayBuffer): void;
close(code?: number, reason?: string): void;
ping(data?: Uint8Array): void;
terminate(): void;
context: any;
data: Map<string, unknown>;
tags: Set<string>;
}
export interface ISmartserveWebSocketMessage {
type: 'text' | 'binary';
text?: string;
data?: Uint8Array;
size: number;
}
export interface ISmartserveWebSocketHooks {
onOpen?: (peer: ISmartserveWebSocketPeer) => void | Promise<void>;
onMessage?: (peer: ISmartserveWebSocketPeer, message: ISmartserveWebSocketMessage) => void | Promise<void>;
onClose?: (peer: ISmartserveWebSocketPeer, code: number, reason: string) => void | Promise<void>;
onError?: (peer: ISmartserveWebSocketPeer, error: Error) => void | Promise<void>;
}