我想实现一个服务发现模块来获取服务广播设备的IP地址,类似于bonjour浏览器。是否可以在Unity3D(Android/iOS)中实现它?谁能指导我如何实现它。一个小例子真的很有帮助。 谢谢
编辑1:IOT设备正在广播DNS服务,我想在Unity应用程序中获取该服务以查找IOT设备的IP地址。我无法访问 IOT 设备软件或源代码。
NetworkDiscovery
的新 Unity API 旨在简化此操作。
要查找要连接的 IP 地址,请在
NetworkDiscovery.StartAsServer()
函数中调用服务器端的 Start()
。
在客户端,调用
NetworkDiscovery.StartAsClient()
,然后实现OnReceivedBroadcast(string fromAddress, string data);
函数。当找到服务器时,将调用 OnReceivedBroadcast(string fromAddress, string data);
函数,然后您可以使用返回的 fromAddress
值连接到您的服务器。
客户端连接后,可以通过调用
NetworkDiscovery.StopBroadcast()
停止广播。
这是一个进行 DNS 服务发现的 iOS 插件: https://docs.unity3d.com/Manual/PluginsForIOS.html
Unity 原生的新解决方案是 Netcode Network Discovery
它实际上不再是受支持的解决方案。只有示例代码。
编辑: 他们删除了该发现代码。这是有道理的,因为它似乎不起作用。我仍然使用 UNet,但据说有一个发现系统的参考here