# ReconnectingWebSocketProvider

Defined in: [atomiq-chain-evm/src/evm/providers/ReconnectingWebSocketProvider.ts:20](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/ReconnectingWebSocketProvider.ts#L20)

WebSocket RPC provider with automatic reconnect, heartbeat ping and connection timeout handling.

## Extends

* `SocketProvider`

## Extended by

* [`WebSocketProviderWithRetries`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/WebSocketProviderWithRetries.md)

## Constructors

### Constructor

```
new ReconnectingWebSocketProvider(

   url, 

   network?, 

   options?): ReconnectingWebSocketProvider;
```

Defined in: [atomiq-chain-evm/src/evm/providers/ReconnectingWebSocketProvider.ts:36](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/ReconnectingWebSocketProvider.ts#L36)

#### Parameters

| Parameter  | Type                              |
| ---------- | --------------------------------- |
| `url`      | `string` \| () => `WebSocketLike` |
| `network?` | `Networkish`                      |
| `options?` | `JsonRpcApiProviderOptions`       |

#### Returns

`ReconnectingWebSocketProvider`

#### Overrides

```
SocketProvider.constructor
```

## Properties

### connectionTimeout

```
connectionTimeout: number = 10;
```

Defined in: [atomiq-chain-evm/src/evm/providers/ReconnectingWebSocketProvider.ts:25](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/ReconnectingWebSocketProvider.ts#L25)

***

### connectTimer

```
connectTimer: any;
```

Defined in: [atomiq-chain-evm/src/evm/providers/ReconnectingWebSocketProvider.ts:29](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/ReconnectingWebSocketProvider.ts#L29)

***

### logger

```
readonly logger: LoggerType;
```

Defined in: [atomiq-chain-evm/src/evm/providers/ReconnectingWebSocketProvider.ts:34](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/ReconnectingWebSocketProvider.ts#L34)

***

### pingInterval

```
pingInterval: any;
```

Defined in: [atomiq-chain-evm/src/evm/providers/ReconnectingWebSocketProvider.ts:27](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/ReconnectingWebSocketProvider.ts#L27)

***

### pingIntervalSeconds

```
pingIntervalSeconds: number = 30;
```

Defined in: [atomiq-chain-evm/src/evm/providers/ReconnectingWebSocketProvider.ts:24](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/ReconnectingWebSocketProvider.ts#L24)

***

### reconnectSeconds

```
reconnectSeconds: number = 5;
```

Defined in: [atomiq-chain-evm/src/evm/providers/ReconnectingWebSocketProvider.ts:23](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/ReconnectingWebSocketProvider.ts#L23)

***

### reconnectTimer

```
reconnectTimer: any;
```

Defined in: [atomiq-chain-evm/src/evm/providers/ReconnectingWebSocketProvider.ts:28](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/ReconnectingWebSocketProvider.ts#L28)

***

### requestTimeoutSeconds

```
requestTimeoutSeconds: number = 10;
```

Defined in: [atomiq-chain-evm/src/evm/providers/ReconnectingWebSocketProvider.ts:22](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/ReconnectingWebSocketProvider.ts#L22)

#### Overrides

```
SocketProvider.requestTimeoutSeconds
```

***

### websocket

```
websocket: any = null;
```

Defined in: [atomiq-chain-evm/src/evm/providers/ReconnectingWebSocketProvider.ts:32](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/ReconnectingWebSocketProvider.ts#L32)

***

### wsCtor()

```
wsCtor: () => WebSocketLike;
```

Defined in: [atomiq-chain-evm/src/evm/providers/ReconnectingWebSocketProvider.ts:31](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/ReconnectingWebSocketProvider.ts#L31)

#### Returns

`WebSocketLike`

## Methods

### \_connected()

```
_connected(): void;
```

Defined in: [atomiq-chain-evm/src/evm/providers/SocketProvider.ts:299](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/SocketProvider.ts#L299)

#### Returns

`void`

#### Inherited from

```
SocketProvider._connected
```

***

### \_disconnected()

```
_disconnected(): void;
```

Defined in: [atomiq-chain-evm/src/evm/providers/SocketProvider.ts:309](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/SocketProvider.ts#L309)

#### Returns

`void`

#### Inherited from

```
SocketProvider._disconnected
```

***

### \_getSubscriber()

```
_getSubscriber(sub): Subscriber;
```

Defined in: [atomiq-chain-evm/src/evm/providers/SocketProvider.ts:235](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/SocketProvider.ts#L235)

#### Parameters

| Parameter | Type           |
| --------- | -------------- |
| `sub`     | `Subscription` |

#### Returns

`Subscriber`

#### Inherited from

```
SocketProvider._getSubscriber
```

***

### \_processMessage()

```
_processMessage(message): Promise<void>;
```

Defined in: [atomiq-chain-evm/src/evm/providers/SocketProvider.ts:324](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/SocketProvider.ts#L324)

Sub-classes **must** call this with messages received over their transport to be processed and dispatched.

#### Parameters

| Parameter | Type     |
| --------- | -------- |
| `message` | `string` |

#### Returns

`Promise`<`void`>

#### Inherited from

```
SocketProvider._processMessage
```

***

### \_register()

```
_register(filterId, subscriber): void;
```

Defined in: [atomiq-chain-evm/src/evm/providers/SocketProvider.ts:259](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/SocketProvider.ts#L259)

Register a new subscriber. This is used internalled by Subscribers and generally is unecessary unless extending capabilities.

#### Parameters

| Parameter    | Type                 |
| ------------ | -------------------- |
| `filterId`   | `string` \| `number` |
| `subscriber` | `SocketSubscriber`   |

#### Returns

`void`

#### Inherited from

```
SocketProvider._register
```

***

### \_send()

```
_send(payload): Promise<any[]>;
```

Defined in: [atomiq-chain-evm/src/evm/providers/SocketProvider.ts:270](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/SocketProvider.ts#L270)

#### Parameters

| Parameter | Type  |
| --------- | ----- |
| `payload` | `any` |

#### Returns

`Promise`<`any`\[]>

#### Inherited from

```
SocketProvider._send
```

***

### \_write()

```
_write(message): Promise<void>;
```

Defined in: [atomiq-chain-evm/src/evm/providers/ReconnectingWebSocketProvider.ts:107](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/ReconnectingWebSocketProvider.ts#L107)

Sub-classes **must** override this to send %%message%% over their transport.

#### Parameters

| Parameter | Type     |
| --------- | -------- |
| `message` | `string` |

#### Returns

`Promise`<`void`>

#### Overrides

```
SocketProvider._write
```

***

### destroy()

```
destroy(): Promise<void>;
```

Defined in: [atomiq-chain-evm/src/evm/providers/ReconnectingWebSocketProvider.ts:112](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/providers/ReconnectingWebSocketProvider.ts#L112)

#### Returns

`Promise`<`void`>
