1结执、項(xiàng)目的需求:
項(xiàng)目需要做一個(gè)iOS端App掩蛤,響應(yīng)網(wǎng)頁(yè)定時(shí)頻繁發(fā)出的請(qǐng)求盏阶,App就相當(dāng)于一個(gè)服務(wù)器萄涯。經(jīng)查閱資料绪氛,有兩個(gè)框架可供使用:CoCoaHTTPServer(GitHub地址 );GCDWebServer(GitHub地址 涝影;中文翻譯 )枣察。
因?yàn)榍罢吆芏嗄隂](méi)有維護(hù),所以我選擇了用GCDWebServer實(shí)現(xiàn)這個(gè)需求燃逻。
2序目、項(xiàng)目需要實(shí)現(xiàn)的功能:
保持網(wǎng)頁(yè)在前臺(tái)操作運(yùn)行,App在后臺(tái)不斷的提供請(qǐng)求響應(yīng)伯襟。
3猿涨、遇到的問(wèn)題:
GCDWebServer不支持長(zhǎng)鏈接,只要App退到后臺(tái)姆怪,connect自動(dòng)就stop叛赚,網(wǎng)頁(yè)請(qǐng)求無(wú)法獲得響應(yīng)。
4稽揭、解決辦法:
1)開(kāi)啟支持后臺(tái)模式:將GCDWebServer.m中的GCDWebServerOption_AutomaticallySuspendInBackground設(shè)置為NO俺附;
2)打開(kāi)Background Modes;
3)在AppDelegate.m寫(xiě)上這段代碼
做到這一步的話(huà)溪掀,就已經(jīng)解決了這個(gè)問(wèn)題事镣。本人在網(wǎng)上找了很久,沒(méi)有一個(gè)更好的辦法去解決這個(gè)問(wèn)題揪胃,也咨詢(xún)了很多同行璃哟,都沒(méi)有做過(guò)類(lèi)似的需求唠叛。我把自己一點(diǎn)小小的思路寫(xiě)下來(lái),為了有需要的人提供一個(gè)解決方案沮稚。如果有朋友有更好的方案解決這個(gè)問(wèn)題艺沼,或者對(duì)我的思路有任何質(zhì)疑,都?xì)g迎批評(píng)指正蕴掏。