- 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.
47 lines
1.4 KiB
TypeScript
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>;
|
|
}
|