# Interface: Encoder

> 

Defined in: [packages/server/src/adapters/wsEncoder.ts:13](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/adapters/wsEncoder.ts#L13)

Encodes the messages a WebSocket server sends and decodes the ones it
gets. The client's `experimental_encoder` must match.

## Example

```ts
const customEncoder: Encoder = {
  encode: (data) => myFormat.stringify(data),
  decode: (data) => myFormat.parse(data),
};
```

## Methods

### decode()

> **decode**(`data`): `unknown`

Defined in: [packages/server/src/adapters/wsEncoder.ts:17](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/adapters/wsEncoder.ts#L17)

Decodes a received message.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `data` | `string` \| `ArrayBuffer` \| `Uint8Array`\<`ArrayBufferLike`\> |

#### Returns

`unknown`

***

### encode()

> **encode**(`data`): `string` \| `Uint8Array`\<`ArrayBuffer`\>

Defined in: [packages/server/src/adapters/wsEncoder.ts:15](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/adapters/wsEncoder.ts#L15)

Encodes a message to send.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `data` | `unknown` |

#### Returns

`string` \| `Uint8Array`\<`ArrayBuffer`\>
