Preview environment

interface OptionalWebSocketManagerOptions

export interface OptionalWebSocketManagerOptions

Optional additional configuration for the WebSocketManager

compression : CompressionMethod | null

The compression method to use

encoding : Encoding

The encoding to use

handshakeTimeout : number | null

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

helloTimeout : number | null

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

identifyProperties : GatewayIdentifyProperties

Properties to send to the gateway when identifying

initialPresence : GatewayPresenceUpdateData | null

Initial presence data to send to the gateway when identifying

largeThreshold : number | null

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

readyTimeout : number | null

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

shardCount : number | null

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

shardIds : number[] | ShardRange | null

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

version : string

The gateway version to use

buildIdentifyThrottler() : Awaitable<IIdentifyThrottler>

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

buildStrategy() : IShardingStrategy

Builds the strategy to use for sharding

Examples:
const manager = new WebSocketManager({
 token: process.env.DISCORD_TOKEN,
 intents: 0, // for no intents
 rest,
 buildStrategy: (manager) => new WorkerShardingStrategy(manager, { shardsPerWorker: 2 }),
});

retrieveSessionInfo(
shardId: number
) : Awaitable<SessionInfo | null>

Function used to retrieve session information (and attempt to resume) for a given shard

Examples:
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
  },
});

updateSessionInfo(
shardId: number
sessionInfo: SessionInfo | null
) : Awaitable<void>

Function used to store session information for a given shard