@ionic/discover
Version:
Simple UDP based protocol for service discovery implemented in pure JS.
49 lines (48 loc) • 1.63 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import * as dgram from 'dgram';
import * as events from 'events';
import * as os from 'os';
export interface Interface {
address: string;
broadcast: string;
}
export interface PublisherMessage {
t: number;
id: string;
nspace: string;
name: string;
host: string;
ip: string;
port: number;
commPort?: number;
path: string;
}
export interface IPublisherEventEmitter {
on(event: 'error', listener: (err: Error) => void): this;
}
export declare class Publisher extends events.EventEmitter implements IPublisherEventEmitter {
namespace: string;
name: string;
port: number;
commPort?: number | undefined;
readonly id: string;
readonly path = "/";
running: boolean;
interfaces?: Interface[];
protected timer?: NodeJS.Timer;
protected interval: number;
protected client?: dgram.Socket;
constructor(namespace: string, name: string, port: number, commPort?: number | undefined);
start(): Promise<void>;
stop(): void;
protected buildMessage(ip: string): PublisherMessage;
protected getInterfaces(): Interface[] | undefined;
protected sayHello(): void;
}
export declare function prepareInterfaces(interfaces: NodeJS.Dict<os.NetworkInterfaceInfo[]>): Interface[] | undefined;
export declare function newSilentPublisher(namespace: string, name: string, port: number): Publisher;
export declare function computeBroadcastAddress(address: string, netmask: string): string;