问题
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?
回答1:
This seems to be possible using the Chrome's Sockets API, but I've only taken a cursory look.
mdns-browser seems to implement this using said APIs.
回答2:
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.
回答3:
This library claims to do it in Javascript : http://quickconnect.sourceforge.net/browser/index.html
I have to admit that I would be very interested if it was possible to discover bonjour services in javascript :)
回答4:
I know this an old thread. Found this github project which allows you to discover (and publish) services using mDNS - https://github.com/watson/bonjour
A Bonjour/Zeroconf protocol implementation in pure JavaScript. Publish services on the local network or discover existing services using multicast DNS.
来源:https://stackoverflow.com/questions/1828217/bonjour-discovery-in-javascript-maybe