JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q47982F
  • License MIT

MDNS network scanner for holusion products

Package Exports

  • @holusion/product-scanner
  • @holusion/product-scanner/lib/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@holusion/product-scanner) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

product-scanner

MDNS network scanner for holusion products

Example usage : see example.js.

Import

import ProductScanner from "@holusion/product-scanner";
const s = new ProductScanner(); //Defaults are usually good

API

Events

error

forwards errors from multicast-dns.

ready

emits a ready event once multicast-dns started successfully It is necessary to wait for it before calling ProductScanner.refresh().

change

emitted each time a new node is detected or some node is updated.

Does not perform deduplication so it might get called a lot on noisy networks.

remove

Emitted with the node's host property if a node is removed, either due to timeout or graceful shutdown

Methods

refresh(ids :string, timeout:number=500)

force-refresh a list of hosts within a set time.

Everything that did not respond on time will be removed through the emission of a "remove" event.

Resolves once the timeout expires or all nodes answered.

close()

closes the scanner and the underlying multicast-dns socket if using the default one.

Improvements

  • currently no difference is made between services ttl (long) and addresses ttl (short). a record-dependant refresh cycle could be established
  • refresh could be improved. It currently does a broadcast instead of sending requests only to target nodes
  • some "network health" statistics could be gathered to use a network-dependant value for refresh's timeout.