# createWebSocketTransport

URL: https://www.caprid.com/docs/reference/typescript/caprid/relay-websocket/functions/createwebsockettransport/

```ts
function createWebSocketTransport(): WebSocketTransportFactory;
```

Defined in: [relay-sdks/ts/packages/relay-websocket/src/index.ts:64](https://github.com/caprids/relay-sdks/blob/main/ts/packages/relay-websocket/src/index.ts#L64)

A transport factory for the SDK's `createTransport` option that always connects over QMux over WebSocket, in a
browser or in Node:

```ts
import { connectRelaySubscriber } from '@caprid/relay';
import { createWebSocketTransport } from '@caprid/relay-websocket';

const subscriber = await connectRelaySubscriber({ url, getToken, createTransport: createWebSocketTransport() });
```

The streams share one TCP connection, so a lost packet holds up every stream behind it (head-of-line blocking), and
a relay's credentials refusal arrives as a failed WebSocket handshake, which the SDK reports as `TRANSPORT_ERROR`.

## Returns

[`WebSocketTransportFactory`](https://www.caprid.com/docs/reference/typescript/caprid/relay-websocket/type-aliases/websockettransportfactory/)
