nativescript-zeroconf
This nativescript-zeroconf plugin provides a Zeroconf/Bonjour implementation for both iOS and Android. Currently, it only supports discovering domains and services in the local network. Should there be any requests, I might implement the service registration parts as well (please open an issue to let me know).
Demo Application
This repository contains a demo application in the demo-angular
folder that uses this plugin to display discovered Zeroconf domains and services. The demo app can be a good starting point for your app and may be used for narrowing down issues whilst debugging. Just clone this repo and run npm run demo.ios
or npm run demo.android
in the src
folder.
The demo app searches for by default for http
services, but you can easily adjust the serviceType
in app/zeroconf/zeroconf.provider.ts
.
Installation
tns plugin add nativescript-zeroconf
Usage
First, import the plugin into your provider/component, and, since the plugin returns an Observable
also the relevant types:
import { Zeroconf } from 'nativescript-zeroconf';
import { Observable, PropertyChangeData } from 'tns-core-modules/data/observable';
Then, instantiate a Zeroconf and define the event listeners:
this.zeroconf = new Zeroconf('_http._tcp.', 'local.');
this.zeroconf.on(Observable.propertyChangeEvent, (data: PropertyChangeData) => {
switch(data.propertyName.toString()) {
case 'serviceFound': {
console.log(`serviceFound: ${JSON.stringify(data.value)}`);
break;
}
}
});
this.zeroconf.startServiceDiscovery();
Tip: have a look at the demo project for an example implementation
API
Describe your plugin methods and properties here. See nativescript-feedback for example.
Property | Default | Description |
---|
some property | property default value | property description, default values, etc.. |
another property | property default value | property description, default values, etc.. |
Limitations
License
MIT license (see LICENSE file)