README.creole
May 16, 2012 ยท View on GitHub
= DBUS =
Node.js bindings for libdbus. There are no dependencies on glib.
{{{
var //Get the dbus module dbus = require('dbus'),
//Use the system bus with Avahi namespace
bus = dbus.system('org.freedesktop.Avahi'),
//Get the root object and access its server interface
root = dbus.object('/').as('org.freedesktop.Avahi.Server');
//Wait till the root object is ready for operation as the DBus introspection //system will automatically populate all the methods of the root object root.on("ready", function() { //Call the serviceBrowserNew method as defined by the Avahi specification; all functions have //their first letter lowercased and one additional parameter, the callback, added. //interface, protocol, type, domain, flags root.serviceBrowserNew(-1, -1, "_ssh._tcp", "", 0, function(err, browser) { if (err) throw new Error('Unable to make service browser: '+err); //Now we have a service browser object; all objects are automatically converted into //DBUSObject behind the scenes, so we just need to specify the interface of the object //we wish to access browser = brower.as('org.freedesktop.Avahi.ServiceBrowser');
//Signals to objects are emitted as events. You do NOT need to wait on the "ready" event
//to register event handlers. Event names also, likewise, have their first letter lowercased
//to match JavaScript convention
browser.on("itemNew", function(interface, protocol, name, type, domain, flags) {
console.log("Found new service! "+name)
})
});
})
}}}