> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qu.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# SocketSubscriber

A **SocketSubscriber** uses a socket transport to handle events and should use
[**\_emit**](/sdk/content/classes/SocketSubscriber#_emit) to manage the events.

* A sub-class MUST call the `_start()` method once connected
* A sub-class MUST override the `_write(string)` method
* A sub-class MUST call `_processMessage(string)` for each message

## Extended by

* [`SocketBlockSubscriber`](/sdk/content/classes/SocketBlockSubscriber)
* [`SocketEventSubscriber`](/sdk/content/classes/SocketEventSubscriber)
* [`SocketPendingSubscriber`](/sdk/content/classes/SocketPendingSubscriber)

## Implements

* [`Subscriber`](/sdk/content/interfaces/Subscriber)

## Constructors

### new SocketSubscriber()

```ts theme={null}
new SocketSubscriber(
   provider, 
   filter, 
   zone): SocketSubscriber
```

Creates a new **SocketSubscriber** attached to `provider` listening to `filter`.

#### Parameters

| Parameter  | Type                                                    | Description          |
| :--------- | :------------------------------------------------------ | :------------------- |
| `provider` | [`SocketProvider`](/sdk/content/classes/SocketProvider) | The socket provider. |
| `filter`   | `any`\[]                                                | The filter.          |
| `zone`     | [`Zone`](/sdk/content/enumerations/Zone)                | -                    |

#### Returns

[`SocketSubscriber`](/sdk/content/classes/SocketSubscriber)

#### Source

[providers/provider-socket.ts:63](https://github.com/dominant-strategies/quais.js/blob/c1c12d43f9d34c6baad2b0542bd6d0acd6fefcbf/src/providers/provider-socket.ts#L63)

## Accessors

### filter

```ts theme={null}
get filter(): any[]
```

The filter.

#### Returns

`any`\[]

#### Source

[providers/provider-socket.ts:46](https://github.com/dominant-strategies/quais.js/blob/c1c12d43f9d34c6baad2b0542bd6d0acd6fefcbf/src/providers/provider-socket.ts#L46)

## Methods

### \_emit()

```ts theme={null}
_emit(provider, message): Promise<void>
```

Sub-classes **must** override this to emit the events on the provider.

#### Parameters

| Parameter  | Type                                                    | Description          |
| :--------- | :------------------------------------------------------ | :------------------- |
| `provider` | [`SocketProvider`](/sdk/content/classes/SocketProvider) | The socket provider. |
| `message`  | `any`                                                   | The message to emit. |

#### Returns

`Promise`\<`void`>

#### Abstract

#### Source

[providers/provider-socket.ts:151](https://github.com/dominant-strategies/quais.js/blob/c1c12d43f9d34c6baad2b0542bd6d0acd6fefcbf/src/providers/provider-socket.ts#L151)

***

### pause()

```ts theme={null}
pause(dropWhilePaused?): void
```

Pause the subscriber.

#### Parameters

| Parameter          | Type      | Description                        |
| :----------------- | :-------- | :--------------------------------- |
| `dropWhilePaused`? | `boolean` | Whether to drop logs while paused. |

#### Returns

`void`

#### Implementation of

[`Subscriber`](/sdk/content/interfaces/Subscriber).[`pause`](/sdk/content/interfaces/Subscriber#pause)

#### Source

[providers/provider-socket.ts:98](https://github.com/dominant-strategies/quais.js/blob/c1c12d43f9d34c6baad2b0542bd6d0acd6fefcbf/src/providers/provider-socket.ts#L98)

***

### resume()

```ts theme={null}
resume(): void
```

Resume the subscriber.

#### Returns

`void`

#### Implementation of

[`Subscriber`](/sdk/content/interfaces/Subscriber).[`resume`](/sdk/content/interfaces/Subscriber#resume)

#### Source

[providers/provider-socket.ts:111](https://github.com/dominant-strategies/quais.js/blob/c1c12d43f9d34c6baad2b0542bd6d0acd6fefcbf/src/providers/provider-socket.ts#L111)

***

### start()

```ts theme={null}
start(): void
```

Start the subscriber.

#### Returns

`void`

#### Implementation of

[`Subscriber`](/sdk/content/interfaces/Subscriber).[`start`](/sdk/content/interfaces/Subscriber#start)

#### Source

[providers/provider-socket.ts:76](https://github.com/dominant-strategies/quais.js/blob/c1c12d43f9d34c6baad2b0542bd6d0acd6fefcbf/src/providers/provider-socket.ts#L76)

***

### stop()

```ts theme={null}
stop(): void
```

Stop the subscriber.

#### Returns

`void`

#### Implementation of

[`Subscriber`](/sdk/content/interfaces/Subscriber).[`stop`](/sdk/content/interfaces/Subscriber#stop)

#### Source

[providers/provider-socket.ts:86](https://github.com/dominant-strategies/quais.js/blob/c1c12d43f9d34c6baad2b0542bd6d0acd6fefcbf/src/providers/provider-socket.ts#L86)
