# Interface: WebSocketClientOptions

> 

Defined in: [packages/client/src/links/wsLink/wsClient/options.ts:9](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/client/src/links/wsLink/wsClient/options.ts#L9)

Options for `createWSClient`.

## See

https://trpc.io/docs/client/links/wsLink#wslink--createwsclient-options

## Extends

- `UrlOptionsWithConnectionParams`

## Properties

### connectionParams?

> `optional` **connectionParams**: `CallbackOrValue`\<`null` \| `Dict`\<`string`\>\>

Defined in: [packages/client/src/links/internals/urlWithConnectionParams.ts:33](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/client/src/links/internals/urlWithConnectionParams.ts#L33)

Connection params that are available in `createContext()`
- For `wsLink`/`wsClient`, these are sent as the first message
- For `httpSubscriptionLink`, these are serialized as part of the URL under the `connectionParams` query

#### See

https://trpc.io/docs/server/websockets#connectionParams

#### Inherited from

`UrlOptionsWithConnectionParams.connectionParams`

***

### experimental\_encoder?

> `optional` **experimental\_encoder**: [`Encoder`](https://trpc.io/docs/typedoc/client/index/interfaces/Encoder.md)

Defined in: [packages/client/src/links/wsLink/wsClient/options.ts:69](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/client/src/links/wsLink/wsClient/options.ts#L69)

Encodes and decodes messages on the wire, for example as a binary format.

#### Default

```ts
jsonEncoder
```

***

### keepAlive?

> `optional` **keepAlive**: `object`

Defined in: [packages/client/src/links/wsLink/wsClient/options.ts:49](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/client/src/links/wsLink/wsClient/options.ts#L49)

Send ping messages to the server and kill the connection if no pong message is returned

#### enabled

> **enabled**: `boolean`

##### Default

```ts
false
```

#### intervalMs?

> `optional` **intervalMs**: `number`

Send a ping message every this many milliseconds

##### Default

```ts
5_000
```

#### pongTimeoutMs?

> `optional` **pongTimeoutMs**: `number`

Close the WebSocket after this many milliseconds if the server does not respond

##### Default

```ts
1_000
```

***

### lazy?

> `optional` **lazy**: `object`

Defined in: [packages/client/src/links/wsLink/wsClient/options.ts:34](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/client/src/links/wsLink/wsClient/options.ts#L34)

Lazy mode will close the WebSocket automatically after a period of inactivity (no messages sent or received and no pending requests)

#### closeMs

> **closeMs**: `number`

Close the WebSocket after this many milliseconds

##### Default

```ts
0
```

#### enabled

> **enabled**: `boolean`

Enable lazy mode

##### Default

```ts
false
```

***

### onClose()?

> `optional` **onClose**: (`cause`?) => `void`

Defined in: [packages/client/src/links/wsLink/wsClient/options.ts:30](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/client/src/links/wsLink/wsClient/options.ts#L30)

Triggered when a WebSocket connection is closed

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `cause`? | \{ `code`: `number`; \} |
| `cause.code`? | `number` |

#### Returns

`void`

***

### onError()?

> `optional` **onError**: (`evt`?) => `void`

Defined in: [packages/client/src/links/wsLink/wsClient/options.ts:26](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/client/src/links/wsLink/wsClient/options.ts#L26)

Triggered when a WebSocket connection encounters an error

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `evt`? | `Event` |

#### Returns

`void`

***

### onOpen()?

> `optional` **onOpen**: () => `void`

Defined in: [packages/client/src/links/wsLink/wsClient/options.ts:22](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/client/src/links/wsLink/wsClient/options.ts#L22)

Triggered when a WebSocket connection is established

#### Returns

`void`

***

### retryDelayMs()?

> `optional` **retryDelayMs**: (`attemptIndex`) => `number`

Defined in: [packages/client/src/links/wsLink/wsClient/options.ts:18](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/client/src/links/wsLink/wsClient/options.ts#L18)

The number of milliseconds before a reconnect is attempted.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `attemptIndex` | `number` |

#### Returns

`number`

#### Default

exponentialBackoff

***

### url

> **url**: `CallbackOrValue`\<`string`\>

Defined in: [packages/client/src/links/internals/urlWithConnectionParams.ts:25](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/client/src/links/internals/urlWithConnectionParams.ts#L25)

The URL to connect to (can be a function that returns a URL)

#### Inherited from

`UrlOptionsWithConnectionParams.url`

***

### WebSocket()?

> `optional` **WebSocket**: (`url`, `protocols`?) => `WebSocket`

Defined in: [packages/client/src/links/wsLink/wsClient/options.ts:13](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/client/src/links/wsLink/wsClient/options.ts#L13)

The `WebSocket` class to use, for runtimes that don't have one.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `url` | `string` \| `URL` |
| `protocols`? | `string` \| `string`[] |

#### Returns

`WebSocket`
