Interface CreateWebSocketManagerOptions

Required options for the WebSocketManager

Hierarchy

Properties

compression?: null | ZlibStream

The compression method to use

Default Value

null (no compression)

encoding?: JSON

The encoding to use

Default Value

'json'

handshakeTimeout?: null | number

How long to wait for a shard to connect before giving up

helloTimeout?: null | number

How long to wait for a shard's HELLO packet before giving up

identifyProperties?: GatewayIdentifyProperties

Properties to send to the gateway when identifying

initialPresence?: null | GatewayPresenceUpdateData

Initial presence data to send to the gateway when identifying

intents: 0 | GatewayIntentBits

The intents to request

largeThreshold?: null | number

Value between 50 and 250, total number of members where the gateway will stop sending offline members in the guild member list

readyTimeout?: null | number

How long to wait for a shard's READY packet before giving up

rest: REST

The REST instance to use for fetching gateway information

shardCount?: null | number

The total number of shards across all WebsocketManagers you intend to instantiate. Use null to use Discord's recommended shard count

shardIds?: null | number[] | ShardRange

The ids of the shards this WebSocketManager should manage. Use null to simply spawn 0 through shardCount - 1

Example

const manager = new WebSocketManager({
shardIds: [1, 3, 7], // spawns shard 1, 3, and 7, nothing else
});

Example

const manager = new WebSocketManager({
shardIds: {
start: 3,
end: 6,
}, // spawns shards 3, 4, 5, and 6
});
token: string

The token to use for identifying with the gateway

version?: string

The gateway version to use

Default Value

'10'

Methods

  • Builds an identify throttler to use for this manager's shards

    Parameters

    • manager: WebSocketManager

    Returns Awaitable<IIdentifyThrottler>

  • Builds the strategy to use for sharding

    Parameters

    • manager: WebSocketManager

    Returns IShardingStrategy

    Example

    const manager = new WebSocketManager({
    token: process.env.DISCORD_TOKEN,
    intents: 0, // for no intents
    rest,
    buildStrategy: (manager) => new WorkerShardingStrategy(manager, { shardsPerWorker: 2 }),
    });
  • Function used to retrieve session information (and attempt to resume) for a given shard

    Parameters

    • shardId: number

    Returns Awaitable<null | SessionInfo>

    Example

    const manager = new WebSocketManager({
    async retrieveSessionInfo(shardId): Awaitable<SessionInfo | null> {
    // Fetch this info from redis or similar
    return { sessionId: string, sequence: number };
    // Return null if no information is found
    },
    });
  • Function used to store session information for a given shard

    Parameters

    Returns Awaitable<void>

Generated using TypeDoc