UNPKG

@homebridge/ciao

Version:

ciao is a RFC 6763 compliant dns-sd library, advertising on multicast dns (RFC 6762) implemented in plain Typescript/JavaScript

47 lines 1.7 kB
import { CiaoService } from "../CiaoService"; import { MDNSServer } from "../MDNSServer"; export interface AnnouncerOptions { /** * Defines how often the announcement should be sent. */ repetitions?: number; /** * If set to true, goodbye packets will be sent (ttl will be set to zero on all records) */ goodbye?: boolean; } /** * This class is used to execute the 'announce' process for a given service as define in RFC 6762 8.3. * * The Multicast DNS responder MUST send at least two unsolicited * responses, one second apart. To provide increased robustness against * packet loss, a responder MAY send up to eight unsolicited responses, * provided that the interval between unsolicited responses increases by * at least a factor of two with every response sent. * */ export declare class Announcer { static readonly CANCEL_REASON = "CIAO ANNOUNCEMENT CANCELLED"; private readonly server; private readonly service; private readonly repetitions; private readonly announceIntervalIncreaseFactor; private readonly goodbye; private timer?; private promise?; private promiseResolve?; private promiseReject?; private sentAnnouncements; private sentLastAnnouncement; private nextInterval; nextAnnouncementTime: number; constructor(server: MDNSServer, service: CiaoService, options: AnnouncerOptions); announce(): Promise<void>; cancel(): Promise<void>; hasSentLastAnnouncement(): boolean; awaitAnnouncement(): Promise<void>; isSendingGoodbye(): boolean; private sendAnnouncement; private static sendResponseAddingAddressRecords; } //# sourceMappingURL=Announcer.d.ts.map