@homebridge/hap-nodejs
    Preparing search index...

    Class HAPConnection

    Manages a single iOS-initiated HTTP connection during its lifetime.

    Hierarchy

    • EventEmitter
      • HAPConnection
    Index

    Constructors

    Properties

    _pairSetupState?: number
    _pairVerifyState?: number
    encryption?: HAPEncryption
    lastSocketOperation: number = ...
    localAddress: string
    networkInterface: string
    remoteAddress: string
    remotePort: number
    sessionID: string
    srpServer?: SrpServer
    timedWritePid?: number
    timedWriteTimeout?: Timeout
    username?: string

    Methods

    • Alias for emitter.on(eventName, listener).

      Parameters

      • event: string | symbol
      • listener: (...args: any[]) => void

      Returns this

      v0.1.26

    • This method is called once the connection has gone through pair-verify. As any HomeKit controller will initiate a pair-verify after the pair-setup procedure, this method gets not called on the initial pair-setup.

      Once this method has been called, the connection is authenticated and encryption is turned on.

      Parameters

      • username: string

      Returns void

    • Parameters

      • aid: number
      • iid: number

      Returns void

    • Parameters

      • event: "request"
      • request: IncomingMessage
      • response: ServerResponse

      Returns boolean

    • Parameters

      • event: "authenticated"
      • username: string

      Returns boolean

    • Parameters

      • event: "closed"

      Returns boolean

    • Parameters

      • aid: number
      • iid: number

      Returns void

    • Parameters

      • ipVersion: "ipv4" | "ipv6"

      Returns string

    • Parameters

      • aid: number
      • iid: number

      Returns boolean

    • Alias for emitter.removeListener().

      Parameters

      • event: string | symbol
      • listener: (...args: any[]) => void

      Returns this

      v10.0.0

    • Parameters

      • event: "request"
      • listener: (request: IncomingMessage, response: ServerResponse) => void

      Returns this

    • Parameters

      • event: "authenticated"
      • listener: (username: string) => void

      Returns this

    • Parameters

      • event: "closed"
      • listener: () => void

      Returns this

    • Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      server.on('connection', (stream) => {
      console.log('someone connected!');
      });

      Returns a reference to the EventEmitter, so that calls can be chained.

      By default, event listeners are invoked in the order they are added. The emitter.prependListener() method can be used as an alternative to add the event listener to the beginning of the listeners array.

      import { EventEmitter } from 'node:events';
      const myEE = new EventEmitter();
      myEE.on('foo', () => console.log('a'));
      myEE.prependListener('foo', () => console.log('b'));
      myEE.emit('foo');
      // Prints:
      // b
      // a

      Parameters

      • event: string | symbol
      • listener: (...args: any[]) => void

        The callback function

      Returns this

      v0.1.101

    • Removes the specified listener from the listener array for the event named eventName.

      const callback = (stream) => {
      console.log('someone connected!');
      };
      server.on('connection', callback);
      // ...
      server.removeListener('connection', callback);

      removeListener() will remove, at most, one instance of a listener from the listener array. If any single listener has been added multiple times to the listener array for the specified eventName, then removeListener() must be called multiple times to remove each instance.

      Once an event is emitted, all listeners attached to it at the time of emitting are called in order. This implies that any removeListener() or removeAllListeners() calls after emitting and before the last listener finishes execution will not remove them fromemit() in progress. Subsequent events behave as expected.

      import { EventEmitter } from 'node:events';
      class MyEmitter extends EventEmitter {}
      const myEmitter = new MyEmitter();

      const callbackA = () => {
      console.log('A');
      myEmitter.removeListener('event', callbackB);
      };

      const callbackB = () => {
      console.log('B');
      };

      myEmitter.on('event', callbackA);

      myEmitter.on('event', callbackB);

      // callbackA removes listener callbackB but it will still be called.
      // Internal listener array at time of emit [callbackA, callbackB]
      myEmitter.emit('event');
      // Prints:
      // A
      // B

      // callbackB is now removed.
      // Internal listener array [callbackA]
      myEmitter.emit('event');
      // Prints:
      // A

      Because listeners are managed using an internal array, calling this will change the position indices of any listener registered after the listener being removed. This will not impact the order in which listeners are called, but it means that any copies of the listener array as returned by the emitter.listeners() method will need to be recreated.

      When a single function has been added as a handler multiple times for a single event (as in the example below), removeListener() will remove the most recently added instance. In the example the once('ping') listener is removed:

      import { EventEmitter } from 'node:events';
      const ee = new EventEmitter();

      function pong() {
      console.log('pong');
      }

      ee.on('ping', pong);
      ee.once('ping', pong);
      ee.removeListener('ping', pong);

      ee.emit('ping');
      ee.emit('ping');

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: string | symbol
      • listener: (...args: any[]) => void

      Returns this

      v0.1.26