> ISPO SDK documentation. [HTML](https://ispo.ai/docs/interfaces/core.EntitySubscription.html) · [Documentation index](https://ispo.ai/docs/llms.txt)

# Interface EntitySubscription

```typescript
interface EntitySubscription {
    sid: number;
    close(): void;
    onEnd(handler: EntitySubscriptionEndHandler): () => void;
}
```

Types: [sid](#sid), [close](#close-1), [onEnd](#onend-1), [EntitySubscriptionEndHandler](../types/core.EntitySubscriptionEndHandler.md)

#### Hierarchy

*   EntitySubscription
    *   [CommunityProjectionSubscription](core.CommunityProjectionSubscription.md)
    *   [EntityQuerySubscription](core.EntityQuerySubscription.md)

##### Index

### <a id="properties"></a>Properties

[sid](#sid)

### <a id="methods"></a>Methods

[close](#close) [onEnd](#onend)

## <a id="properties-1"></a>Properties

### <a id="sid"></a>`Readonly`sid

```typescript
sid: number
```

The project-local stream id.

## <a id="methods-1"></a>Methods

### <a id="close"></a>close

*   <a id="close-1"></a>
    
    ```typescript
    close(): void
    ```
    
    Tear down the subscription and post `end` to the host. Idempotent.
    
    #### Returns void
    

### <a id="onend"></a>onEnd

*   <a id="onend-1"></a>
    
    ```typescript
    onEnd(handler: EntitySubscriptionEndHandler): () => void
    ```
    
    Types: [EntitySubscriptionEndHandler](../types/core.EntitySubscriptionEndHandler.md)
    
    Run `handler` when the host (or a revoke/crash) ends this stream.
    
    #### Parameters
    
    *   handler: [EntitySubscriptionEndHandler](../types/core.EntitySubscriptionEndHandler.md)
    
    #### Returns () \=> void
