You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thanks a lot for maintaining and developing the library.
We are using jMDNS in an embedded system where we are looking to onboard a large number of physical devices and we use mDNS to scan/detect those devices.
Everything worked fine in our testing until we started reaching a certain number of devices in the network (~50). At that point, we started noticing a large performance degradation. Device detection that might take some seconds would now take minutes, sometimes hours. Not everything can be attributed to jMDNS, we are running on an embedded system with tight resource constrains.
I have set up a simple test, from my machine I create 300 mDNS services via script:
After a while, the resolve callback takes a very long time to be called and the device stops resolving services.
I had faced a similar issue on Android with another library, where resolving too many services at once caused a race condition. However, there seems to be no way to stop service resolution by jMDNS. I'm taking a look into the codebase myself but it is very complex and would require large modification (do not immediately trigger service resolution when a service is detected) but some guidance would be useful.
Thanks a lot for maintaining and developing the library.
We are using jMDNS in an embedded system where we are looking to onboard a large number of physical devices and we use mDNS to scan/detect those devices.
Everything worked fine in our testing until we started reaching a certain number of devices in the network (~50). At that point, we started noticing a large performance degradation. Device detection that might take some seconds would now take minutes, sometimes hours. Not everything can be attributed to jMDNS, we are running on an embedded system with tight resource constrains.
I have set up a simple test, from my machine I create 300 mDNS services via script:
Then I run jMDNS on my device and added some logs to the
serviceResolved
callbackAfter a while, the resolve callback takes a very long time to be called and the device stops resolving services.
I had faced a similar issue on Android with another library, where resolving too many services at once caused a race condition. However, there seems to be no way to stop service resolution by jMDNS. I'm taking a look into the codebase myself but it is very complex and would require large modification (do not immediately trigger service resolution when a service is detected) but some guidance would be useful.
So far, I've only managed to kinda guess where the entry point of the listener/resolves lies but no idea where resolution takes place.
Any help is much appreciatted.
The text was updated successfully, but these errors were encountered: