export interface OptionalWebSocketManagerOptions
export interface OptionalWebSocketManagerOptions
Optional additional configuration for the WebSocketManager
The compression method to use
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 countThe 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
});
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
});
const manager = new WebSocketManager({
shardIds: {
start: 3,
end: 6,
}, // spawns shards 3, 4, 5, and 6
});
version
:
string
The gateway version to use
Builds the strategy to use for sharding
Example
const manager = new WebSocketManager({
token: process.env.DISCORD_TOKEN,
intents: 0, // for no intents
rest,
buildStrategy: (manager) => new WorkerShardingStrategy(manager, { shardsPerWorker: 2 }),
});
const manager = new WebSocketManager({
token: process.env.DISCORD_TOKEN,
intents: 0, // for no intents
rest,
buildStrategy: (manager) => new WorkerShardingStrategy(manager, { shardsPerWorker: 2 }),
});
Name | Type | Optional | Description |
---|---|---|---|
manager | WebSocketManager | No | None |
Function used to retrieve session information (and attempt to resume) for a given shard
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
},
});
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
},
});
Name | Type | Optional | Description |
---|---|---|---|
shardId | number | No | None |
updateSessionInfo(shardId, sessionInfo)
:
Awaitable<void>
Function used to store session information for a given shard
Name | Type | Optional | Description |
---|---|---|---|
shardId | number | No | None |
sessionInfo | SessionInfo | null | No | None |