update protocol for devices system

This commit is contained in:
RoyceDa
2026-01-31 03:01:25 +02:00
parent 45e9f84cbe
commit 9194bf5c5f
3 changed files with 145 additions and 2 deletions

View File

@@ -0,0 +1,75 @@
import Packet from "../packet";
import Stream from "../stream";
export enum DeviceState {
ONLINE = 0,
OFFLINE = 1
}
export enum DeviceVerifyState {
VERIFIED = 0,
/**
* Устройство не подтверждено пользователем
* через другой девайс
*/
NOT_VERIFIED = 1
}
export interface DeviceEntry {
deviceId: string;
deviceName: string;
deviceOs: string;
deviceStatus: DeviceState;
deviceVerify: DeviceVerifyState;
}
/**
* Отправляется с сервера клиенту для передачи списка
* подключенных в данный момент к аккаунту устройств
*/
export class PacketDeviceList extends Packet {
private devices: DeviceEntry[] = [];
public getPacketId(): number {
return 0x17;
}
public _receive(stream: Stream): void {
const deviceCount = stream.readInt16();
this.devices = [];
for (let i = 0; i < deviceCount; i++) {
const device: DeviceEntry = {
deviceId: stream.readString(),
deviceName: stream.readString(),
deviceOs: stream.readString(),
deviceStatus: stream.readInt8(),
deviceVerify: stream.readInt8()
};
this.devices.push(device);
}
}
public _send(): Promise<Stream> | Stream {
const stream = new Stream();
stream.writeInt16(this.getPacketId());
stream.writeInt16(this.devices.length);
for (const device of this.devices) {
stream.writeString(device.deviceId);
stream.writeString(device.deviceName);
stream.writeString(device.deviceOs);
stream.writeInt8(device.deviceStatus);
stream.writeInt8(device.deviceVerify);
}
return stream;
}
public getDevices(): DeviceEntry[] {
return this.devices;
}
public setDevices(devices: DeviceEntry[]): void {
this.devices = devices;
}
}