WebSocket Link
wsLink is a terminating link that's used when using tRPC's WebSockets Client and Subscriptions, which you can learn more about here.
Usage
To use wsLink, you need to pass it a TRPCWebSocketClient, which you can create with createWSClient:
client/index.tstsimport { createTRPCProxyClient, createWSClient, wsLink } from '@trpc/client';import type { AppRouter } from '../server';const wsClient = createWSClient({url: 'ws://localhost:3000',});const trpcClient = createTRPCProxyClient<AppRouter>({links: [wsLink<AppRouter>({ client: wsClient })],});
client/index.tstsimport { createTRPCProxyClient, createWSClient, wsLink } from '@trpc/client';import type { AppRouter } from '../server';const wsClient = createWSClient({url: 'ws://localhost:3000',});const trpcClient = createTRPCProxyClient<AppRouter>({links: [wsLink<AppRouter>({ client: wsClient })],});
wsLink Options
The wsLink function requires a TRPCWebSocketClient to be passed, which can be configured with the fields defined in WebSocketClientOptions:
tsexport interface WebSocketLinkOptions {client: TRPCWebSocketClient;}function createWSClient(opts: WebSocketClientOptions) => TRPCWebSocketClientexport interface WebSocketClientOptions {url: string;WebSocket?: typeof WebSocket;retryDelayMs?: typeof retryDelay;onOpen?: () => void;onClose?: (cause?: { code?: number }) => void;}
tsexport interface WebSocketLinkOptions {client: TRPCWebSocketClient;}function createWSClient(opts: WebSocketClientOptions) => TRPCWebSocketClientexport interface WebSocketClientOptions {url: string;WebSocket?: typeof WebSocket;retryDelayMs?: typeof retryDelay;onOpen?: () => void;onClose?: (cause?: { code?: number }) => void;}
Reference
You can check out the source code for this link on GitHub.