# Interface: Encoder

> 

Defined in: packages/server/dist/unstable-core-do-not-import-CzDUc5m2.d.mts:2459

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/dist/unstable-core-do-not-import-CzDUc5m2.d.mts:2463

Decodes a received message.

#### Parameters

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

#### Returns

`unknown`

***

### encode()

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

Defined in: packages/server/dist/unstable-core-do-not-import-CzDUc5m2.d.mts:2461

Encodes a message to send.

#### Parameters

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

#### Returns

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