This plugin allows you to browse and publish ZeroConf/Bonjour/mDNS services from applications developed using PhoneGap/Cordova 3.0 or newer.
This is not a background service. When the cordova view is destroyed/terminated, publish and watch operations are stopped.
In your application project directory:
cordova plugin add cordova-plugin-zeroconf
var zeroconf = cordova.plugins.zeroconf;
For Android, you may want set the following options to speed discovery up:
zeroconf.registerAddressFamily = 'ipv4'; // or 'ipv6' ('any' by default)
zeroconf.watchAddressFamily = 'ipv4'; // or 'ipv6' ('any' by default)
Returns this device's hostname.
zeroconf.getHostname(function success(hostname){
console.log(hostname); // ipad-of-becvert.local.
});
Publishes a new service.
zeroconf.register('_http._tcp.', 'local.', 'Becvert\'s iPad', 80, {
'foo' : 'bar'
}, function success(result){
var action = result.action; // 'registered'
var service = result.service;
});
Unregisters a service.
zeroconf.unregister('_http._tcp.', 'local.', 'Becvert\'s iPad');
Unregisters all published services.
zeroconf.stop();
Starts watching for services of the specified type.
zeroconf.watch('_http._tcp.', 'local.', function(result) {
var action = result.action;
var service = result.service;
if (action == 'added') {
console.log('service added', service);
} else if (action == 'resolved') {
console.log('service resolved', service);
/* service : {
'domain' : 'local.',
'type' : '_http._tcp.',
'name': 'Becvert\'s iPad',
'port' : 80,
'hostname' : 'ipad-of-becvert.local',
'ipv4Addresses' : [ '192.168.1.125' ],
'ipv6Addresses' : [ '2001:0:5ef5:79fb:10cb:1dbf:3f57:feb0' ],
'txtRecord' : {
'foo' : 'bar'
} */
} else {
console.log('service removed', service);
}
});
Stops watching for services of the specified type.
zeroconf.unwatch('_http._tcp.', 'local.')
Closes the service browser and stops watching.
zeroconf.close()
It depends on the JmDNS library
Implements Apple's Bonjour
The MIT License