Comments (5)
What OS do you see this happening on (iOS)? On Ubuntu, the OS caches the resolve for just over a min. When I follow your procedure, I also see serviceAdded() firing for the device that doesn't exist. If you wait 1.5 min (on Ubuntu 16.04) before starting the browser then serviceAdded() will not fire as the resolve will fail.
I did find a bug........If you don't stop the browser, you are supposed to see the service disappear after about a min (on Ubuntu 16.04) when the resolve cache is updated. This bug is only confirmed for QtZeroConf backends that use Avahi. I'm not sure yet what the dnssd backend is doing in this situation....will check on the weekend. I need to keep the AvahiServiceResolvers around to get updates.
The weirdness is that I thought that QtZeroConf had a resolution step before it added a device
Correct, QtZeroConf will not emit serviceAdded() unless it can successfully resolve the service. (problem is OS cache described above)
from qtzeroconf.
I'm using macOS currently. I don't think this caching behavior depends on OS, though - it's probably generic to Bonjour.
I do occasionally see service removed notifications - presumably when I manage to wait long enough for it to expire from the cache. If I recall correctly, much of Bonjour operates on exponential backoffs to reduce traffic; I wouldn't be surprised if the time for the cache to purge a powered off device was variable, and possibly dependent on the time it had been on.
I've also seen what looked like spurious removals - speakers that are currently powered up suddenly reported as lost, despite the fact that I'm currently connected to them. Any idea why that might happen?
Thanks,
Alex
from qtzeroconf.
I tested the dnssd backend (same used on Mac) on Windows and it is working which is consistent with your findings on Mac, so I think it is just the Avahi code.
I've also seen what looked like spurious removals - speakers that are currently powered up suddenly reported as lost, despite the fact that I'm currently connected to them.
Are these speakers / devices on wifi? Have you connected to error(QZeroConf::error_t) and do you see any errors? I've got a Mac and 2 linux PCs I'm going to run overnight.
from qtzeroconf.
Yes, they are connected via a wifi router, and yes I'm monitoring all error signals and have seen no errors.
from qtzeroconf.
I suspect it is the wifi. multicast on wifi has been a disaster. I've just run the example on 2 linux PCs + Mac book for 36 hours (all wired). There was no extra removes / adds... only the original service discoveries, one for each.
from qtzeroconf.
Related Issues (20)
- issue reading txtrecord of addService() HOT 3
- Power-Cycling Bonjour Devices Can Cause Permanent Loss HOT 8
- Library does not broadcast on Android devices HOT 1
- Windows 10 Loses Devices On WiFi Network Toggle HOT 4
- Services disappear on macOS Catalina HOT 4
- problem when renewing connexion HOT 15
- Update of TXT records
- Android: Temporary resolution failures result in service removal HOT 6
- SIGABRT on iOS HOT 4
- Segmentation fault while reading TXT records
- Android API Level 30 issues HOT 39
- No Services on iOS using test app HOT 8
- Cannot build example on FreeBSD HOT 4
- How to search for all kinds of services? HOT 4
- Use bonjour-sdk on other platforms, too? HOT 1
- SIGABRT if Avahi is not running on Linux HOT 2
- Add Qt6-Android support HOT 7
- Stopped working for ios 17 HOT 15
- Support for native Windows mDNS/DNS-SD stack HOT 1
- error: cannot pass object of non-trivial type 'QtJniTypes::Context' through variadic constructor; call will abort at runtime HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from qtzeroconf.