UNPKG

@devgrid/netron

Version:

A powerful TypeScript library for building distributed systems with event bus, streaming capabilities, and remote object invocation. Features WebSocket-based bidirectional communication between Node.js and browser environments, service discovery, and type

32 lines (31 loc) 1.18 kB
import { Logger } from 'pino'; import { Redis } from 'ioredis'; import { Netron } from '../netron'; import { NodeInfo, ServiceInfo, DiscoveryEvent, DiscoveryOptions } from './types'; export declare class ServiceDiscovery { private redis; private nodeId; private address; private services; private heartbeatTimer?; private options; private readonly pubSubChannel; private subscriber?; private stopped; private shutdownPromise?; private registered; logger: Logger; constructor(redis: Redis, netron: Netron, address: string, services: ServiceInfo[], options?: DiscoveryOptions); startHeartbeat(): void; shutdown(): Promise<void>; publishHeartbeat(): Promise<void>; getActiveNodes(): Promise<NodeInfo[]>; findNodesByService(name: string, version?: string): Promise<NodeInfo[]>; subscribeToEvents(handler: (event: DiscoveryEvent) => void): Promise<void>; private deregisterNodeById; isNodeActive(nodeId: string): Promise<boolean>; updateServices(services: ServiceInfo[]): Promise<void>; updateAddress(address: string): Promise<void>; private publishEvent; private unsubscribeFromEvents; }