我目前正在研究 Java 可用的各种服务发现协议,并提出了一个小清单:
- DNS-SD [ 1 ] aka mDNS - 由jmDNS实现,也用作ECF(Eclipse 通信框架)的Zeroconf/Bonjour 发现提供程序的后端
- UPnP [ 2 ] - 由Cling库实现
- SLP - 由OpenSLP和jSLP项目实现(后来也可作为ECF Discovery 提供者使用)
可能还有更多选择,如果是这样,我邀请您将其添加到组合中。
我很想从使用过其中一种或多种协议的人那里获得一些关于每种协议优缺点的客观清单。发布和发现服务的实现是什么样子的,协议的“健谈性”是什么,它的可靠性如何(协议和实现),它是否需要集中式服务目录还是 p2p/分散式等。
您会选择哪一个来提供对 LAN 上多个设备/服务的无缝自动发现?