interface OptionalWebSocketManagerOptionsOptional additional configuration for the WebSocketManager
externalcompression : CompressionMethod | null = null (no transport compression)
The transport compression method to use - mutually exclusive with useIdentifyCompression
externalencoding : Encoding = 'json'
The encoding to use
externalidentifyProperties : GatewayIdentifyProperties
Properties to send to the gateway when identifying
externalinitialPresence : GatewayPresenceUpdateData | null
Initial presence data to send to the gateway when identifying
Value between 50 and 250, total number of members where the gateway will stop sending offline members in the guild member list
The total number of shards across all WebsocketManagers you intend to instantiate. Use null to use Discord's recommended shard count
externalshardIds : number[] | ShardRange | null
The ids of the shards this WebSocketManager should manage. Use null to simply spawn 0 through shardCount - 1
externaltoken : string
The token to use for identifying with the gatewayIf not provided, the token must be set using setToken
externaluseIdentifyCompression : boolean = false
Whether to use the compress option when identifying
externalversion : string = '10'
The gateway version to use
external buildIdentifyThrottler(manager: WebSocketManager) : Awaitable<IIdentifyThrottler>
Builds an identify throttler to use for this manager's shards
external buildStrategy(manager: WebSocketManager) : IShardingStrategy
Builds the strategy to use for sharding
const rest = new REST().setToken(process.env.DISCORD_TOKEN);
const manager = new WebSocketManager({
token: process.env.DISCORD_TOKEN,
intents: 0, // for no intents
fetchGatewayInformation() {
return rest.get(Routes.gatewayBot()) as Promise<RESTGetAPIGatewayBotResult>;
},
buildStrategy: (manager) => new WorkerShardingStrategy(manager, { shardsPerWorker: 2 }),
});external retrieveSessionInfo(shardId: number) : Awaitable<SessionInfo | null>
Function used to retrieve session information (and attempt to resume) for a given shard
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
},
});external updateSessionInfo(shardId: numbersessionInfo: SessionInfo | null) : Awaitable<void>
Function used to store session information for a given shard