Add Sharding Support!

This commit is contained in:
Amish Shah
2016-08-22 21:31:43 +01:00
parent fb2392a1ed
commit 3fded1d7af
5 changed files with 51 additions and 4 deletions

View File

@@ -112,6 +112,9 @@ class WebSocketManager {
this.reconnecting = false;
const payload = this.client.options.ws;
payload.token = this.client.token;
if (this.client.options.shard_count > 0) {
payload.shard = [this.client.options.shard_id, this.client.options.shard_count];
}
this.send({
op: Constants.OPCodes.IDENTIFY,

View File

@@ -1,3 +1,28 @@
/**
* Options that can be passed to a client:
* ```js
* {
* ws: {
* large_threshold: 250,
* compress: true,
* properties: {
* $os: process ? process.platform : 'discord.js',
* $browser: 'discord.js',
* $device: 'discord.js',
* $referrer: '',
* $referring_domain: '',
* },
* },
* protocol_version: 6,
* max_message_cache: 200,
* rest_ws_bridge_timeout: 5000,
* api_request_method: 'sequential',
* shard_id: 0,
* shard_count: 0,
* };
* ```
* @typedef {Object} ClientOptions
*/
exports.DefaultOptions = {
ws: {
large_threshold: 250,
@@ -14,6 +39,8 @@ exports.DefaultOptions = {
max_message_cache: 200,
rest_ws_bridge_timeout: 5000,
api_request_method: 'sequential',
shard_id: 0,
shard_count: 0,
};
exports.Status = {