从GCDWebServer获取Bonjour网址



我正在使用GCDWebServer并通过运行以下命令启动它:

webServer!.start(withPort: 8080, bonjourName: "Test")

检查来自 GCDWebServer 的[INFO]日志时,我可以在两个不同的位置看到两条消息:

  • GCDWebServer 在端口 8080 上启动,可通过 http://{deviceIp}:8080/访问
  • GCDWebServer 现在可通过 http://{deviceName}.local:8080 进行本地访问

另一个 URL 使用设备名称而不是我在上面的代码中配置的bonjourName这一事实让我感到困惑,但这没什么大不了的。

更大的问题是,在实现GCDWebServerDelegatewebServerDidStart后,从那里打印serverURL仍然显示IP网址。

我还可以看到,在日志中完成GCDWebServer 消息的 Bonjour 注册之前,webServerDidStart被调用了。

如何获取人类可读的 URL?

这都是关于新的本地网络隐私设置的。Bonjour的问题是通过在info.plist中添加以下内容来解决的:

<key>NSLocalNetworkUsageDescription</key>
<string>My app uses local network</string>
<key>NSBonjourServices</key>
<array>
<string>_http._tcp</string>
</array>

要使用的属性是bonjourServerURLserverURL始终是 IP 地址,一旦调用webServerDidCompleteBonjourRegistration委托方法,bonjourServerURL将保存该值。我不知道为什么 Bonjour URL 中的主机名与bonjourName参数值不匹配。

相关内容

  • 没有找到相关文章

最新更新