@xtr-dev/zod-rpc
Version:
Simple, type-safe RPC library with Zod validation and automatic TypeScript inference
50 lines • 1.79 kB
TypeScript
import { Transport, RPCMessage } from '../types';
/**
* WebSocket transport implementation for real-time RPC communication.
* Supports automatic reconnection and handles connection lifecycle management.
*
* @example
* ```typescript
* // For client connections
* const transport = createWebSocketTransport('ws://localhost:8080');
*
* // For server connections with existing WebSocket
* const transport = createWebSocketTransport(ws, false); // No auto-reconnect
* ```
*
* @group Transport Layer
*/
export declare class WebSocketTransport implements Transport {
private websocket;
private autoReconnect;
private messageHandler?;
private reconnectAttempts;
private maxReconnectAttempts;
private reconnectDelay;
constructor(websocket: WebSocket, autoReconnect?: boolean);
send(message: RPCMessage): Promise<void>;
onMessage(handler: (message: RPCMessage) => void): void;
connect(): Promise<void>;
disconnect(): Promise<void>;
isConnected(): boolean;
private setupEventHandlers;
private attemptReconnect;
}
/**
* Create a WebSocket transport for RPC communication.
* Supports both URL strings (for clients) and existing WebSocket instances (for servers).
*
* @example
* ```typescript
* // Client usage with URL
* const transport = createWebSocketTransport('ws://localhost:8080');
*
* // Server usage with existing WebSocket
* const transport = createWebSocketTransport(ws, false);
* ```
*
* @group Transport Layer
*/
export declare function createWebSocketTransport(url: string, protocols?: string | string[], autoReconnect?: boolean): WebSocketTransport;
export declare function createWebSocketTransport(websocket: WebSocket, autoReconnect?: boolean): WebSocketTransport;
//# sourceMappingURL=websocket.d.ts.map