Bonjour Discovery in Javascript? Maybe?

So its a longshot, I’ll start with that.

Is it/could it be possible to discover bonjour advertised HTTP services in javascript alone?

Why would this be useful? Imagine a local service looking after some data (eg your current lat/long), the data is exposed via a webservice and advertised by Bonjour Zeroconf. A (remote) website might want to know your current lat/long and rather than having to know you’re running MyGPSserverVersion2 the site could use javascript to search the local bonjour for _Compatible_location_services._tcp and then continue once it had an IP address.

If this is impossible (I think its probably the case, Javascript is fairly restricted) then what are the hurdles and does anyone have any ideas as to how to overcome them?

The short answer is no ( at least not on the Linux platform ).

Funny you should ask: I have been working on bringing this sort of functionality within reach of web browsers. One of my success in this endeavor is an NPAPI mDNS plugin for Chrome. The plugin basically interfaces with Avahi ZeroConf (mDNS – Multicast DNS Server).

I am currently working on yet another bridge to close this gap: a “lightweight” database ( a la CouchDb ) that will be used by desktop applications to register their HTTP end-points. Extensions would then read those end-points from Javascript and be able to interact directly with the advertised services.

UPDATE: There is hope through W3C Service Discovery.

This library claims to do it in Javascript :

I have to admit that I would be very interested if it was possible to discover bonjour services in javascript 🙂

I know this an old thread.
Found this github project which allows you to discover (and publish) services using mDNS –

A Bonjour/Zeroconf protocol implementation in pure JavaScript. Publish services on the local network or discover existing services using multicast DNS.

Here’s the modern fork of the watson/bonjour javascript code. This one’s in TypeScript.

Of course, this only works from a command line node app, not from a web page.

The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .

Similar Posts