在 macOS/Cocoa 应用程序中启动 GCDWebServer 会冻结应用程序
Posted
技术标签:
【中文标题】在 macOS/Cocoa 应用程序中启动 GCDWebServer 会冻结应用程序【英文标题】:Starting a GCDWebServer in a macOS/Cocoa app freezes the app 【发布时间】:2019-03-29 21:15:41 【问题描述】:当我从 macOS/Cocoa 应用程序(不是命令行)启动一个简单的 GCDWebServer 服务器时,应用程序会冻结(“应用程序无响应”+ 沙滩球)。
在 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")
【问题讨论】:
【参考方案1】:不要使用webServer.run()
API:它不会返回并且是为命令行工具设计的。请改用start()
。
【讨论】:
以上是关于在 macOS/Cocoa 应用程序中启动 GCDWebServer 会冻结应用程序的主要内容,如果未能解决你的问题,请参考以下文章