我想在iOS上创建一个具有GCDWebServer
的服务器,它将接受对localhost
的请求,然后,从另一个url
(视频文件)提取数据并将数据流式传输到响应。我打算使用普通的NSURLConnection
,并且在NSURLConnection
回调的didReceiveData
中,我想将此数据传递给GCDWebServerResponse
。
我很难弄清楚如何保持连接从请求打开,以便我可以启动另一个请求w/NSURLConnection
,并开始为响应提供数据。
我有什么办法可以做到吗?我需要为GCDWebServerStreamedResponse
创建一个新的子类吗?
提前感谢。
您不需要子类化GCDWebServerStreamedResponse
,而只需实例化它并使用GCDWebServerAsyncStreamBlock
回调。
在回调中,创建您的NSURLConnection
并使其异步运行。然后每当有新的数据可用时(例如来自-didReceiveData:
),使用GCDWebServerBodyReaderCompletionBlock
传递它,当没有更多的数据可用时,传递一个空的NSData。
参见GCDWebServer README中的"高级异步版本"了解类似的概念。