UNPKG

1.63 kBTypeScriptView Raw
1/// <reference types="node" />
2/// <reference types="node" />
3/// <reference types="node" />
4/// <reference types="node" />
5/// <reference types="node" />
6import * as dgram from 'dgram';
7import * as events from 'events';
8import * as os from 'os';
9export interface Interface {
10 address: string;
11 broadcast: string;
12}
13export interface PublisherMessage {
14 t: number;
15 id: string;
16 nspace: string;
17 name: string;
18 host: string;
19 ip: string;
20 port: number;
21 commPort?: number;
22 path: string;
23}
24export interface IPublisherEventEmitter {
25 on(event: 'error', listener: (err: Error) => void): this;
26}
27export declare class Publisher extends events.EventEmitter implements IPublisherEventEmitter {
28 namespace: string;
29 name: string;
30 port: number;
31 commPort?: number | undefined;
32 readonly id: string;
33 readonly path = "/";
34 running: boolean;
35 interfaces?: Interface[];
36 protected timer?: NodeJS.Timer;
37 protected interval: number;
38 protected client?: dgram.Socket;
39 constructor(namespace: string, name: string, port: number, commPort?: number | undefined);
40 start(): Promise<void>;
41 stop(): void;
42 protected buildMessage(ip: string): PublisherMessage;
43 protected getInterfaces(): Interface[] | undefined;
44 protected sayHello(): void;
45}
46export declare function prepareInterfaces(interfaces: NodeJS.Dict<os.NetworkInterfaceInfo[]>): Interface[] | undefined;
47export declare function newSilentPublisher(namespace: string, name: string, port: number): Publisher;
48export declare function computeBroadcastAddress(address: string, netmask: string): string;