...some situations that the discovery wont work?
Discovery feature requires that UDP broadcast is enabled on your network.
I guess it may be disabled via router settings and/or a firewall.
I'm not aware of any other problems that may block service discovery.
Have you tried running discovery on your PC?
I suggest that you try playing with it on the computer rather then the device.
It's easier to analyze network traffic when you're on a PC.
Does MiniChat client work on your wifi network?
Another question is about the time out of the discovery. There are a property that we can modify this setting?
Discovery feature is still a bit experimental, and the API is not yet stable.
There are settings that control timeout, retry count, etc, but they are currently private,
so if you need them you'll need to build Zyan from sources. If you find them useful
for your scenario, I can make them public in the next release.
ZyanConnection.DiscoverServers method is just a thin wrapper for DiscoveryClient class,
located in Zyan.Communication.Discovery namespace. It demonstrates the usage of the discovery client:
var request = new DiscoveryRequest(name, version);
var dc = new DiscoveryClient(request, port);
dc.Discovered += (s, e) =>
var response = e.Metadata as DiscoveryResponse;
if (response != null)
DiscoveryClient has private properties: RetryCount and RetryTimeout.
You'll need to make them public and rebuild Zyan from sources to play with them in your application.
However, I'm not sure that you really need to change them when the problem in found.
Hope this helps,