[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [WebSocket](https://evolu.dev/docs/api-reference/common/WebSocket) › WebSocketOptions

Defined in: [packages/common/src/WebSocket.ts:135](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/WebSocket.ts#L135)

Options for creating [WebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/interfaces/WebSocket).

## Properties

<a id="binarytype"></a>

### binaryType?

```ts
readonly optional binaryType?: "blob" | "arraybuffer";
```

Defined in: [packages/common/src/WebSocket.ts:140](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/WebSocket.ts#L140)

Sets the binary type for the data being received.

---

<a id="onclose"></a>

### onClose?

```ts
readonly optional onClose?: (event: CloseEvent) => void;
```

Defined in: [packages/common/src/WebSocket.ts:149](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/WebSocket.ts#L149)

Callback when the connection is closed.

### onError?

```ts
readonly optional onError?: (error: WebSocketError) => void;
```

Defined in: [packages/common/src/WebSocket.ts:146](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/WebSocket.ts#L146)

Callback when an error occurs.

### onMessage?

```ts
readonly optional onMessage?: (data:
  | string
  | ArrayBuffer
  | Blob) => void;
```

Defined in: [packages/common/src/WebSocket.ts:159](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/WebSocket.ts#L159)

Callback when message data is received.

### onOpen?

```ts
readonly optional onOpen?: () => void;
```

Defined in: [packages/common/src/WebSocket.ts:143](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/WebSocket.ts#L143)

Callback when the connection is established.

### protocols?

```ts
readonly optional protocols?: string | readonly string[];
```

Defined in: [packages/common/src/WebSocket.ts:137](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/WebSocket.ts#L137)

Protocol(s) to use with the WebSocket connection.

---

<a id="schedule"></a>

### schedule?

```ts
readonly optional schedule?: Schedule<number & Brand<"NonNaN"> & Brand<"Finite"> & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">, WebSocketRetryError>;
```

Defined in: [packages/common/src/WebSocket.ts:165](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/WebSocket.ts#L165)

Retry schedule for reconnection. Defaults to
[webSocketReconnectSchedule](https://evolu.dev/docs/api-reference/common/WebSocket/variables/webSocketReconnectSchedule).

---

<a id="shouldretryonclose"></a>

### shouldRetryOnClose?

```ts
readonly optional shouldRetryOnClose?: (event: CloseEvent) => boolean;
```

Defined in: [packages/common/src/WebSocket.ts:156](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/WebSocket.ts#L156)

Determines whether a closed connection should trigger a retry.

Return false to stop retrying, for example on auth errors or maintenance.

### WebSocketConstructor?

```ts
readonly optional WebSocketConstructor?: {
(url: string | URL, protocols?: string | string[]): WebSocket;
  CLOSED: 3;
  CLOSING: 2;
  CONNECTING: 0;
  OPEN: 1;
  prototype: WebSocket;
};
```

Defined in: [packages/common/src/WebSocket.ts:174](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/WebSocket.ts#L174)

For custom WebSocket implementations.

This supports blob:

https://github.com/callstackincubator/react-native-fast-io