refactor: add available accessor property in PacketClient

This commit is contained in:
pk5ls20 2024-10-14 15:13:44 +08:00
parent b4cb3ddf1c
commit a79c933693
No known key found for this signature in database
GPG Key ID: 6370ED7A169F493A
8 changed files with 13 additions and 9 deletions

View File

@ -377,7 +377,7 @@ export class NTQQFileApi {
online_rkey: false online_rkey: false
}; };
try { try {
if (this.core.apis.PacketApi.packetClient?.isConnected) { if (this.core.apis.PacketApi.packetClient?.available) {
if ((!this.packetRkey || this.packetRkey[0].time > Date.now() / 1000)) { if ((!this.packetRkey || this.packetRkey[0].time > Date.now() / 1000)) {
this.packetRkey = await this.core.apis.PacketApi.sendRkeyPacket(); this.packetRkey = await this.core.apis.PacketApi.sendRkeyPacket();
} }

View File

@ -69,7 +69,7 @@ export class NTQQPacketApi {
// wtfk tx // wtfk tx
// 校验失败和异常 可能返回undefined // 校验失败和异常 可能返回undefined
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (!this.isInit || !this.packetClient?.isConnected) { if (!this.isInit || !this.packetClient?.available) {
this.core.context.logger.logError('packetClient is not init'); this.core.context.logger.logError('packetClient is not init');
return undefined; return undefined;
} }

View File

@ -5,13 +5,17 @@ import { createHash } from "crypto";
export class PacketClient { export class PacketClient {
private websocket: WebSocket | undefined; private websocket: WebSocket | undefined;
public isConnected: boolean = false; private isConnected: boolean = false;
private reconnectAttempts: number = 0; private reconnectAttempts: number = 0;
private maxReconnectAttempts: number = 5; private maxReconnectAttempts: number = 5;
//trace_id-type callback //trace_id-type callback
private cb = new LRUCache<string, any>(500); private cb = new LRUCache<string, any>(500);
constructor(private url: string, public logger: LogWrapper) { } constructor(private url: string, public logger: LogWrapper) { }
get available(): boolean {
return this.isConnected && this.websocket !== undefined;
}
connect(): Promise<void> { connect(): Promise<void> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.logger.log.bind(this.logger)(`Attempting to connect to ${this.url}`); this.logger.log.bind(this.logger)(`Attempting to connect to ${this.url}`);

View File

@ -15,7 +15,7 @@ export class GetRkey extends BaseAction<Payload, Array<any>> {
payloadSchema = SchemaData; payloadSchema = SchemaData;
async _handle(payload: Payload) { async _handle(payload: Payload) {
if (!this.core.apis.PacketApi.packetClient?.isConnected) { if (!this.core.apis.PacketApi.packetClient?.available) {
throw new Error('PacketClient is not init'); throw new Error('PacketClient is not init');
} }
return await this.core.apis.PacketApi.sendRkeyPacket(); return await this.core.apis.PacketApi.sendRkeyPacket();

View File

@ -17,7 +17,7 @@ export class GetUserStatus extends BaseAction<Payload, { status: number; ext_sta
payloadSchema = SchemaData; payloadSchema = SchemaData;
async _handle(payload: Payload) { async _handle(payload: Payload) {
if (!this.core.apis.PacketApi.packetClient?.isConnected) { if (!this.core.apis.PacketApi.packetClient?.available) {
throw new Error('packetClient is not init'); throw new Error('packetClient is not init');
} }
return await this.core.apis.PacketApi.sendStatusPacket(+payload.user_id); return await this.core.apis.PacketApi.sendStatusPacket(+payload.user_id);

View File

@ -18,7 +18,7 @@ export class SetSpecialTittle extends BaseAction<Payload, any> {
payloadSchema = SchemaData; payloadSchema = SchemaData;
async _handle(payload: Payload) { async _handle(payload: Payload) {
if (!this.core.apis.PacketApi.packetClient?.isConnected) { if (!this.core.apis.PacketApi.packetClient?.available) {
throw new Error('PacketClient is not init'); throw new Error('PacketClient is not init');
} }
let uid = await this.core.apis.UserApi.getUidByUinV2(payload.user_id.toString()); let uid = await this.core.apis.UserApi.getUidByUinV2(payload.user_id.toString());

View File

@ -20,7 +20,7 @@ export class UploadForwardMsg extends BaseAction<Payload, any> {
payloadSchema = SchemaData; payloadSchema = SchemaData;
async _handle(payload: Payload) { async _handle(payload: Payload) {
if (!this.core.apis.PacketApi.packetClient?.isConnected) { if (!this.core.apis.PacketApi.packetClient?.available) {
throw new Error('PacketClient is not init'); throw new Error('PacketClient is not init');
} }
throw new Error('Not implemented'); throw new Error('Not implemented');

View File

@ -18,7 +18,7 @@ export class GroupPoke extends BaseAction<Payload, any> {
payloadSchema = SchemaData; payloadSchema = SchemaData;
async _handle(payload: Payload) { async _handle(payload: Payload) {
if (!this.core.apis.PacketApi.packetClient?.isConnected) { if (!this.core.apis.PacketApi.packetClient?.available) {
throw new Error('packetClient is not init'); throw new Error('packetClient is not init');
} }
await this.core.apis.PacketApi.sendPokePacket(+payload.group_id, +payload.user_id); await this.core.apis.PacketApi.sendPokePacket(+payload.group_id, +payload.user_id);