fwenzel / ciaociao Goto Github PK
View Code? Open in Web Editor NEWA Bonjour/Zeroconf service discovery add-on for Firefox
Home Page: https://addons.mozilla.org/addon/ciaociao/
License: BSD 3-Clause "New" or "Revised" License
A Bonjour/Zeroconf service discovery add-on for Firefox
Home Page: https://addons.mozilla.org/addon/ciaociao/
License: BSD 3-Clause "New" or "Revised" License
It would be great if the add-on can work with Firefox Quantum.
From the update of macOS High Sierra, we have no more the Bonjour function in Safari.
Due to this I use back to Firefox after I discovered the ciaociao add-on.
Now, with the Firefox Quantum version, the extension is deactivated.
given the approach in #7 does not look promising right now due to platform considerations, i'd like to suggest another path: the avahi-browse
utility seems to do on free unix systems roughly what dns-sd is doing on osx. an invocation of avahi-browse _http._tcp --resolve --parsable --no-db-lookup --terminate
gives me:
+;wlan0;IPv4;my-server;_http._tcp;local
+;wlan0;IPv4;MPC\032client\032on\032my-server;_http._tcp;local
=;wlan0;IPv4;my-server;_http._tcp;local;my-server.local;10.13.13.227;80;"path=/storage/"
=;wlan0;IPv4;MPC\032client\032on\032my-server;_http._tcp;local;my-server.local;10.13.13.227;6680;
(without --resolve, it would only show the +
lines and not dig down deep enough to give the details in the =
records).
would you consider adding support for those platforms?
First! ;-)
Might also want to match HTTPS servers. Should be _https._tcp for the service type I think.
From Issue #5, CC @davecotter
Some services appear to be listed twice. I wonder if that can happen when the button is pressed repeatedly? Though every press on the button should empty the list first before adding more results.
When clicking its button, it immediately says "No services found!". I'm a using avahi-publish to send out _http._tcp dns-sd service announcements, and avahi-browse sees them. I am assuming ciaociao won't work with such an old version of firefox, but wanted to check with you on this.
While the panel is open, we can listen permanently, no reason to stop the background service. Only when closing the panel do we need to switch off the background listener.
Right now, we kill the service after 5 seconds, which sometimes is not enough for initial service detection. On the flip side, the timeout helps us to display a message that no service was found.
Maybe a spinner with "detecting services..." that stays there indefinitely until/unless we find anything?
Right now we collect them all, then kill
the dns-sd process, then send everything to the frontend. No need for that, we can process and send messages as we go.
That lets us allow the process to run a little longer too.
No clue how do to that best yet. If we had a TCP socket in Firefox, I could do it all in JavaScript and be done. Alas, I am shelling out to external tools.
I don't think Windows ships with a Zeroconf client by default (?) so our options are limited.
It seems Apple made dns-sd for Windows so if I can hook into that that's an option but it would require the user to install the SDK I think.
The add-on detects services when the panel is opened, but there's no indication that it's still going, nor that it's "done". We can do better.
Can this be ported to Firefox Android ?
AMO editor writes:
- After installing I got in the Browser Console:
The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol. panel.html
Thanks @supersole for today's blog post.
dns-sd.js exists, is MIT licensed, so we should be able to use that rather than parsing out command line output on Mac only. Marvelous!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.