diff --git a/packages/core/src/highlevel/worker/port.ts b/packages/core/src/highlevel/worker/port.ts index c579a442..6078f775 100644 --- a/packages/core/src/highlevel/worker/port.ts +++ b/packages/core/src/highlevel/worker/port.ts @@ -51,6 +51,9 @@ export abstract class TelegramWorkerPort imp case 'server_update': this._serverUpdatesHandler(message.update) break + case 'conn_state': + this._connectionStateHandler(message.state) + break case 'update': { const peers = new PeersIndex(message.users, message.chats) peers.hasMin = message.hasMin diff --git a/packages/core/src/highlevel/worker/protocol.ts b/packages/core/src/highlevel/worker/protocol.ts index 0fbb293f..56401fd4 100644 --- a/packages/core/src/highlevel/worker/protocol.ts +++ b/packages/core/src/highlevel/worker/protocol.ts @@ -2,6 +2,7 @@ import type { Worker as NodeWorker } from 'worker_threads' import { tl } from '@mtcute/tl' +import { ConnectionState } from '../client.types.js' import { SerializedError } from './errors.js' export type WorkerInboundMessage = { @@ -23,6 +24,7 @@ export type WorkerOutboundMessage = hasMin: boolean } | { type: 'error'; error: unknown } + | { type: 'conn_state'; state: ConnectionState } | { type: 'log' color: number diff --git a/packages/core/src/highlevel/worker/worker.ts b/packages/core/src/highlevel/worker/worker.ts index 75c28371..4cefb616 100644 --- a/packages/core/src/highlevel/worker/worker.ts +++ b/packages/core/src/highlevel/worker/worker.ts @@ -40,6 +40,12 @@ export abstract class TelegramWorker { error: err, }), ) + client.onConnectionState((state) => + this.broadcast({ + type: 'conn_state', + state, + }), + ) if (client.updates) { client.onUpdate((update, peers) =>