我正在使用GCDWebservers来启动http服务。我希望它仍然接受后台模式的连接。这是我的源代码:
func startServer (){
do {
webServer?.stop()
webServer?.removeAllHandlers()
try self.webServer?.start(options: [GCDWebServerOption_BonjourName: "", GCDWebServerOption_BonjourType: IMS_DOMAIN, GCDWebServerOption_Port : IMS_SERVICE_PORT, GCDWebServerOption_AutomaticallySuspendInBackground: false])
} catch {
print("Start server error: ", error.localizedDescription)
}
print("bonjour type", self.webServer?.bonjourType)
}
它适用于模拟器,但在真实设备上它不起作用。当App再次前进时,此消息打印输出:
dnssd_clientstub read_all(10)DEFUNCT
[错误] Bonjour注册 错误-72000(域10)
请帮帮我。
答案 0 :(得分:2)
当您的应用处于后台时,无法运行网络服务器(最多几分钟除外)。请参阅" GCDWebServer& iOS应用程序的背景模式"有关详细信息,请参阅GCDWebServer README
文件中的部分:
通常,您必须在应用程序处于后台时停止任何网络服务器,并在应用程序返回到前台时重新启动它们。