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

WebSocket with auto-reconnect.

## Core

| Name                                                                                                        | Description                                                                                                                                              |
| ----------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [CreateWebSocketDep](https://evolu.dev/docs/api-reference/common/WebSocket/interfaces/CreateWebSocketDep)                | Dependency wrapper for [CreateWebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/type-aliases/CreateWebSocket).                                         |
| [WebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/interfaces/WebSocket)                                  | WebSocket with auto-reconnect.                                                                                                                           |
| [WebSocketOptions](https://evolu.dev/docs/api-reference/common/WebSocket/interfaces/WebSocketOptions)                    | Options for creating [WebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/interfaces/WebSocket).                                                         |
| [CreateWebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/type-aliases/CreateWebSocket)                    | [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) that creates a [WebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/interfaces/WebSocket). |
| [WebSocketReadyState](https://evolu.dev/docs/api-reference/common/WebSocket/type-aliases/WebSocketReadyState)            | WebSocket connection states.                                                                                                                             |
| [createWebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/variables/createWebSocket)                       | Create a new [WebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/interfaces/WebSocket).                                                                 |
| [webSocketReconnectSchedule](https://evolu.dev/docs/api-reference/common/WebSocket/variables/webSocketReconnectSchedule) | Default WebSocket reconnect schedule.                                                                                                                    |

## Errors

| Name                                                                                                               | Description                                                                                                                                                |
| ------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [WebSocketConnectError](https://evolu.dev/docs/api-reference/common/WebSocket/interfaces/WebSocketConnectError)                 | An error that occurs when a connection cannot be established due to a network error. Fires before `onclose`.                                               |
| [WebSocketConnectionCloseError](https://evolu.dev/docs/api-reference/common/WebSocket/interfaces/WebSocketConnectionCloseError) | An error that occurs when the connection is closed by the server.                                                                                          |
| [WebSocketConnectionError](https://evolu.dev/docs/api-reference/common/WebSocket/interfaces/WebSocketConnectionError)           | An error that occurs when an established connection encounters an issue (e.g., failure to send data). Fires before `onclose`.                              |
| [WebSocketSendError](https://evolu.dev/docs/api-reference/common/WebSocket/interfaces/WebSocketSendError)                       | An error that occurs when trying to send data but WebSocket is not available or is in the CONNECTING state.                                                |
| [WebSocketError](https://evolu.dev/docs/api-reference/common/WebSocket/type-aliases/WebSocketError)                             | Any error reported by a [WebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/interfaces/WebSocket), including exhausted reconnect retries.                 |
| [WebSocketRetryError](https://evolu.dev/docs/api-reference/common/WebSocket/type-aliases/WebSocketRetryError)                   | Errors that trigger a reconnect attempt under [webSocketReconnectSchedule](https://evolu.dev/docs/api-reference/common/WebSocket/variables/webSocketReconnectSchedule). |

## Testing

| Name                                                                                           | Description                                                                                                                                                                                                                     |
| ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [TestCreateWebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/interfaces/TestCreateWebSocket) | An inspectable in-memory [CreateWebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/type-aliases/CreateWebSocket) for testing by [testCreateWebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/functions/testCreateWebSocket). |
| [TestSetupWebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/interfaces/TestSetupWebSocket)   | A native [WebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/interfaces/WebSocket) prepared for integration tests by [testSetupWebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/functions/testSetupWebSocket).              |
| [testCreateWebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/functions/testCreateWebSocket)  | Creates [TestCreateWebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/interfaces/TestCreateWebSocket).                                                                                                                         |
| [testSetupWebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/functions/testSetupWebSocket)    | Opens a native [WebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/interfaces/WebSocket) and returns [TestSetupWebSocket](https://evolu.dev/docs/api-reference/common/WebSocket/interfaces/TestSetupWebSocket).                             |