# Subscription

**Kind**: interface | **Module**: [Interop](https://docs.interop.io/desktop/reference/javascript/interop/index.md)

**Source**: https://docs.interop.io/desktop/reference/javascript/interop/subscription/index.html

Stream subscription made by an application.

## Properties

- **`requestArguments`** (`object`, required)
  Arguments used to make the subscription.
- **`serverInstance`** (`Instance`, required)
- **`servers`** (`Instance[]`, required)
  Instances of the applications providing the stream, that we have subscribed to
- **`stream`** (`MethodDefinition`, required)
  Stream definition.

## Methods

### close

Closes the subscription.

```ts
() => void
```

**Returns**: `void`

### onClosed

Subscribe for the event which fires when the subscription is closed.

```ts
(callback: (info: OnClosedInfo) => void) => void
```

**Parameters**

- **`callback`** (`(info: OnClosedInfo) => void`, required)

**Returns**: `void`

### onConnected

Subscribe for the event which your subscription is connected to a server

```ts
(callback: (server: Instance, reconnect: boolean) => void) => void
```

**Parameters**

- **`callback`** (`(server: Instance, reconnect: boolean) => void`, required)

**Returns**: `void`

### onData

Subscribe for the event which fires when new data is received.

```ts
(callback: (data: StreamData) => void) => void
```

**Parameters**

- **`callback`** (`(data: StreamData) => void`, required)

**Returns**: `void`

### onFailed

Subscribe for the event which fires if the subscription fails.

```ts
(callback: (err: any) => void) => void
```

**Parameters**

- **`callback`** (`(err: any) => void`, required)

**Returns**: `void`

## Related types

- [Instance](https://docs.interop.io/desktop/reference/javascript/interop/instance/index.md)
- [MethodDefinition](https://docs.interop.io/desktop/reference/javascript/interop/methoddefinition/index.md)
- [OnClosedInfo](https://docs.interop.io/desktop/reference/javascript/interop/onclosedinfo/index.md)
- [StreamData](https://docs.interop.io/desktop/reference/javascript/interop/streamdata/index.md)
