我使用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)
}
它在模拟器上工作,但在实际设备上不起作用。当应用程序再次进入前台时,打印出以下消息:
dnssd_clientstub read_all(10) DEFUNCT
[ERROR]你好注册错误-72000(域10)
请帮帮我。
当应用程序在后台运行时(除了最开始的几分钟),不可能运行web服务器。参见"GCDWebServer &详细信息请参见GCDWebServer README
文件中的"iOS Apps的后台模式"章节:
通常情况下,你必须在应用程序在后台时停止任何网络服务器,并在应用程序返回前台时重新启动它们。