fix: ws priority

This commit is contained in:
MARCROCK22 2024-04-01 21:59:50 -04:00
parent f70edcd7e9
commit b9117f5524
5 changed files with 17 additions and 17 deletions

10
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "seyfert",
"version": "1.2.0",
"version": "1.2.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "seyfert",
"version": "1.2.0",
"version": "1.2.1",
"license": "Apache-2.0",
"dependencies": {
"chokidar": "^3.6.0",
@ -997,9 +997,9 @@
}
},
"node_modules/discord-api-types": {
"version": "0.37.77",
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.77.tgz",
"integrity": "sha512-AkEn9nZA5w/XJ8wzKzlpx3X+MToQCowKahftF1+KYnMWnuglCrVRojy1XlIWX8Frgp1v8INceGKpvDkbvMLJ4g=="
"version": "0.37.78",
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.78.tgz",
"integrity": "sha512-IJdyOPhq7r9Gw5/4X9u4vG8rX7+AwOtX7flUSQyQ1vAZzlnN452GGElUPmjQJIo8gB5VwMesbA9eMW+f0NMWVA=="
},
"node_modules/dot-prop": {
"version": "5.3.0",

View File

@ -148,7 +148,7 @@ export class WorkerClient<Ready extends boolean = boolean> extends BaseClient {
return;
}
await shard.send({
await shard.send(true, {
...data,
} satisfies GatewaySendPayload);

View File

@ -97,7 +97,7 @@ export class Shard {
};
}
async send<T extends GatewaySendPayload = GatewaySendPayload>(message: T) {
async send<T extends GatewaySendPayload = GatewaySendPayload>(force: boolean, message: T) {
this.debugger?.info(
`[Shard #${this.id}] Sending: ${GatewayOpcodes[message.op]} ${JSON.stringify(
message.d,
@ -112,14 +112,14 @@ export class Shard {
1,
)}`,
);
await this.checkOffline();
await this.bucket.acquire();
await this.checkOffline();
await this.checkOffline(force);
await this.bucket.acquire(force);
await this.checkOffline(force);
this.websocket?.send(JSON.stringify(message));
}
async identify() {
await this.send({
await this.send(true, {
op: GatewayOpcodes.Identify,
d: {
token: `Bot ${this.options.token}`,
@ -137,7 +137,7 @@ export class Shard {
}
async resume() {
await this.send({
await this.send(true, {
op: GatewayOpcodes.Resume,
d: {
seq: this.data.resumeSeq!,
@ -306,9 +306,9 @@ export class Shard {
return this.onpacket(JSON.parse(data as string));
}
checkOffline() {
checkOffline(force: boolean) {
if (!this.isOpen) {
return new Promise(resolve => this.offlineSendQueue.push(resolve));
return new Promise(resolve => this.offlineSendQueue[force ? 'unshift' : 'push'](resolve));
}
return Promise.resolve();
}

View File

@ -198,6 +198,6 @@ export class ShardManager extends Map<number, Shard> {
payload,
} satisfies WatcherSendToShard);
}
this.get(shardId)?.send(payload);
this.get(shardId)?.send(false, payload);
}
}

View File

@ -66,9 +66,9 @@ export class DynamicBucket {
this.processing = false;
}
acquire() {
acquire(force = false) {
return new Promise(res => {
this.queue.push(res);
this.queue[force ? 'unshift' : 'push'](res);
void this.processQueue();
});
}