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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS socket保持后台连接 ios9.0 xcode8.0相关的知识,希望对你有一定的参考价值。

本教程是基于AsyncSocket库的简单开发!

socket机制今天就不说了,毕竟百度上太多太详尽了!

1.先new一个工程;

?2.要写socket的界面遵循<</span>AsyncSocketDelegate>代理方法;?如图

技术分享遵循代理方法

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

技术分享服务端

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

技术分享服务端实力方法

?这里需要注意的是:端口最大为65535  其中端口建议设置为5000以上,另外还有一些特殊端口,例如8080端口为视频端口,建议不要占用

5.实现AsyncSocket的代理方法?:

这里可以创建一个可变数组socketArray,用来保存接入的?链接,并保持链接;

下图的-1代表持续监听,如果设置为100,就是100秒后不在监听;?

技术分享有链接接入则会走此代理
技术分享用于接收新链接发送的消息

 

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

?1.首先:plist中加入

技术分享voip

或者配置如下图所示

?

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

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

技术分享进入后台后和系统借用时间

?

技术分享重新回来后归还时间

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

技术分享定时器

?

 

完成这些后就可以在网页上访问:127.0.0.1:5019 看看控制台的输出了~?

git:https://github.com/SingleTap?

以上是关于iOS socket保持后台连接 ios9.0 xcode8.0的主要内容,如果未能解决你的问题,请参考以下文章

ios socket一直在发送数据后台时会断开吗

iOS iOS9.0 的CoreLocation定位

如何在 Android O 中保持服务在后台运行?

如何像前台服务一样启动 socket.io 以保持连接并监听消息

如何在后台保持 iphone ios websocket 连接处于活动状态?

IOS 网络编程 + 后台保持连接