iOS socket保持后臺(tái)連接 ios9.0 xcode8.0

iOS socket保持后臺(tái)連接 ios9.0 xcode8.0
可以保持后臺(tái),但申請上架是肯定會(huì)被拒的

本教程是基于AsyncSocket庫的簡單開發(fā)!
socket機(jī)制今天就不說了,畢竟百度上太多太詳盡了!
1.先new一個(gè)工程;
?2.要寫socket的界面遵循<</span>AsyncSocketDelegate>代理方法;?如圖

Paste_Image.png

遵循代理方法

3.創(chuàng)建全局的服務(wù)發(fā)送端;如圖

Paste_Image.png

服務(wù)端

?4.在viewDidLoad里實(shí)例化服務(wù)器對象并綁定端口號;

Paste_Image.png

服務(wù)端實(shí)力方法

?這里需要注意的是:端口最大為65535 其中端口建議設(shè)置為5000以上,另外還有一些特殊端口,例如8080端口為視頻端口,建議不要占用
5.實(shí)現(xiàn)AsyncSocket的代理方法?:
這里可以創(chuàng)建一個(gè)可變數(shù)組socketArray,用來保存接入的?鏈接,并保持鏈接;
下圖的-1代表持續(xù)監(jiān)聽,如果設(shè)置為100,就是100秒后不在監(jiān)聽;?

Paste_Image.png

有鏈接接入則會(huì)走此代理

Paste_Image.png

用于接收新鏈接發(fā)送的消息

注意:iOS的機(jī)制是進(jìn)入后臺(tái)后程序就會(huì)進(jìn)入休眠狀態(tài)!這樣就導(dǎo)致socket無法進(jìn)行持續(xù)通信,接下來就講解怎樣破了它!
?1.首先:plist中加入

Paste_Image.png

voip

或者配置如下圖所示
?

Paste_Image.png

勾選下面兩項(xiàng) 主要勾選這兩項(xiàng)就能保持socket連接

2.然后在AppDelegate中的進(jìn)入后臺(tái)和返回工程里的代理實(shí)現(xiàn)如圖的方法

Paste_Image.png

進(jìn)入后臺(tái)后和系統(tǒng)借用時(shí)間

?

Paste_Image.png

重新回來后歸還時(shí)間

接下來在這里寫個(gè)定時(shí)器后就實(shí)現(xiàn)了程序在后臺(tái)持續(xù)工作了!

Paste_Image.png

定時(shí)器

?

完成這些后就可以在網(wǎng)頁上訪問:127.0.0.1:5019 看看控制臺(tái)的輸出了~?
git:https://github.com/SingleTap?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • iPhone的標(biāo)準(zhǔn)推薦是CFNetwork 庫編程,其封裝好的開源庫是 cocoa AsyncSocket庫,用它...
    Ethan_Struggle閱讀 2,366評論 2 12
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評論 19 139
  • 轉(zhuǎn)載:http://www.cocoachina.com/ios/20170615/19529.html 參考:h...
    F麥子閱讀 4,141評論 3 2
  • 時(shí)間的腳步蹣跚到了2016年的夏天。早上,從校園的跑道上走過,看到如水的陽光正把長出茂密枝葉的樹整個(gè)籠罩,我就想...
    守望幸福_a029閱讀 444評論 0 2
  • 謝謝你的愛 原唱?jiǎng)⒌氯A,我喜歡四川話翻唱 勸你莫做那個(gè)神搓搓滴人啊,多情暫且保留幾分 謝謝你的回音 謝謝你 謝謝你...
    剛好_8546閱讀 348評論 0 0

友情鏈接更多精彩內(nèi)容