Запуск GCDWebServer в приложении macOS/Cocoa приводит к зависанию приложения.

Когда я запускаю простой сервер GCDWebServer из приложения macOS/Cocoa (не из командной строки), приложение зависает («Приложение не отвечает» + пляжный мяч).

В методе AppDelegate:applicationDidFinishLaunching:

let webServer = GCDWebServer()

webServer.addHandler(forMethod: "GET", path: "/hello", request: GCDWebServerRequest.self) { request -> GCDWebServerResponse? in
    print(request)
    return GCDWebServerDataResponse(html:"<html><body><p>Hello World</p></body></html>")
}

webServer.run(withPort: 8080, bonjourName: "Hello World Web Server")

print("Visit \(webServer.serverURL) in your web browser")

person dtrenz    schedule 29.03.2019    source источник


Ответы (1)


Не используйте webServer.run() API: он не вернется и предназначен для инструментов командной строки. Вместо этого используйте start().

person Pol    schedule 21.05.2019