@imqueue/core
Version:
Simple JSON-based messaging queue for inter service communication
69 lines (68 loc) • 2.25 kB
TypeScript
/*!
* UDP message listener for cluster managing
*
* I'm Queue Software Project
* Copyright (C) 2025 imqueue.com <support@imqueue.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* If you want to use this code in a closed source (commercial) project, you can
* purchase a proprietary commercial license. Please contact us at
* <support@imqueue.com> to get commercial licensing options.
*/
import { ClusterManager } from './ClusterManager';
export interface UDPClusterManagerOptions {
/**
* Message queue broadcast port
*
* @default 63000
* @type {number}
*/
port: number;
/**
* Message queue broadcast address
*
* @type {number}
*/
address: string;
/**
* Message queue limited broadcast address
*
* @default "255.255.255.255"
* @type {string}
*/
limitedAddress?: string;
/**
* Message queue alive timeout correction. Used to correct waiting time to
* check if the server is alive
*
* @default 5000
* @type {number}
*/
aliveTimeoutCorrection: number;
}
export declare const DEFAULT_UDP_CLUSTER_MANAGER_OPTIONS: UDPClusterManagerOptions;
export declare class UDPClusterManager extends ClusterManager {
private static workers;
static sockets: Record<string, any>;
private readonly options;
private workerKey;
private worker;
constructor(options?: Partial<UDPClusterManagerOptions>);
private static free;
private startWorkerListener;
destroy(): Promise<void>;
static destroySocket(key: string, socket?: any): Promise<void>;
private static destroyWorker;
}