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

# Interface CommunityProjectionSubscription

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

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

#### Hierarchy

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

##### 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.

Inherited from [EntitySubscription](core.EntitySubscription.md).[sid](core.EntitySubscription.md#sid)

## <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
    
    Inherited from [EntitySubscription](core.EntitySubscription.md).[close](core.EntitySubscription.md#close)
    

### <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
    
    Inherited from [EntitySubscription](core.EntitySubscription.md).[onEnd](core.EntitySubscription.md#onend)
