iOS socket保持后台连接 ios9.0 xcode8.0

iOS socket保持后台连接 ios9.0 xcode8.0
可以保持后台,但申请上架是肯定会被拒的

本教程是基于AsyncSocket库的简单开发!
socket机制今天就不说了,毕竟百度上太多太详尽了!
1.先new一个工程;
​2.要写socket的界面遵循<</span>AsyncSocketDelegate>代理方法;​如图

Paste_Image.png

遵循代理方法

3.创建全局的服务发送端;如图

Paste_Image.png

服务端

​4.在viewDidLoad里实例化服务器对象并绑定端口号;

Paste_Image.png

服务端实力方法

​这里需要注意的是:端口最大为65535 其中端口建议设置为5000以上,另外还有一些特殊端口,例如8080端口为视频端口,建议不要占用
5.实现AsyncSocket的代理方法​:
这里可以创建一个可变数组socketArray,用来保存接入的​链接,并保持链接;
下图的-1代表持续监听,如果设置为100,就是100秒后不在监听;​

Paste_Image.png

有链接接入则会走此代理

Paste_Image.png

用于接收新链接发送的消息

注意:iOS的机制是进入后台后程序就会进入休眠状态!这样就导致socket无法进行持续通信,接下来就讲解怎样破了它!
​1.首先:plist中加入

Paste_Image.png

voip

或者配置如下图所示

Paste_Image.png

勾选下面两项 主要勾选这两项就能保持socket连接

2.然后在AppDelegate中的进入后台和返回工程里的代理实现如图的方法

Paste_Image.png

进入后台后和系统借用时间

Paste_Image.png

重新回来后归还时间

接下来在这里写个定时器后就实现了程序在后台持续工作了!

Paste_Image.png

定时器

完成这些后就可以在网页上访问:127.0.0.1:5019 看看控制台的输出了~​
git:https://github.com/SingleTap

推荐阅读更多精彩内容

  • iPhone的标准推荐是CFNetwork 库编程,其封装好的开源库是 cocoa AsyncSocket库,用它...
    Ethan_Struggle阅读 1,969评论 2 12
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 132,635评论 18 139
  • 转载:http://www.cocoachina.com/ios/20170615/19529.html 参考:h...
    F麦子阅读 3,733评论 3 2
  • 时间的脚步蹒跚到了2016年的夏天。早上,从校园的跑道上走过,看到如水的阳光正把长出茂密枝叶的树整个笼罩,我就想...
    守望幸福_a029阅读 295评论 0 2
  • 谢谢你的爱 原唱刘德华,我喜欢四川话翻唱 劝你莫做那个神搓搓滴人啊,多情暂且保留几分 谢谢你的回音 谢谢你 谢谢你...
    刚好_8546阅读 274评论 0 0