www/versioned_docs/version-10.x/client/links/wsLink.md
wsLink is a terminating link that's used when using tRPC's WebSockets Client and Subscriptions, which you can learn more about here.
To use wsLink, you need to pass it a TRPCWebSocketClient, which you can create with createWSClient:
import { 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 OptionsThe wsLink function requires a TRPCWebSocketClient to be passed, which can be configured with the fields defined in WebSocketClientOptions:
export interface WebSocketLinkOptions {
client: TRPCWebSocketClient;
}
function createWSClient(opts: WebSocketClientOptions) => TRPCWebSocketClient
export interface WebSocketClientOptions {
url: string;
WebSocket?: typeof WebSocket;
retryDelayMs?: typeof retryDelay;
onOpen?: () => void;
onClose?: (cause?: { code?: number }) => void;
}
You can check out the source code for this link on GitHub.