佚名通过本文主要向大家介绍了ios socket,ios socket网络编程,ios socket通信,ios socket编程,ios socket发送空格等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: iOS,什么应用或者场景下需要使用socket编程?
描述:
解决方案1:
描述:
一些应用只是使用了HTTP编程,也就是只用了AFNetworking。 但是听说IM类的应用需要使用到socket,是为什么呢?
解决方案1:
IM应用服务器为了获取用户登录状态要不停地发送“心跳包”确认用户在线和用户的网络情况,用HTTP的话会有太多冗余信息(HEADER,CONTENT-TYPE,STATUS)之类的。
很多IM应用为了安全性或者压缩数据会实现自己的网络协议。
http是一次性的,socket可以实现长连接,凡是一个来回网络请求解决不了问题的都会用socket。
比如微信里刷新朋友圈、下载图片用http请求,收消息因为这边不知道什么时候来消息就搞个socket一直监听,发消息因为会比较频繁用http每次都要重新握手所以也要用socket,还有音视频通话,断点续传等等都要用socket。理论上启动微信或断网重连后的同步消息可以用http去请求没有收到的消息,但是因为诸多原因也是用socket。
当然我上面说的只是最基本的原因,用socket还有非常多的原因是http实现不了的。
凡是http能实现的,socket都能实现,因为http也只是socket via tcp的一种应用场景的协议。
IM大都是在socket基础上自己搞的一套传输协议,类似http,只不过是针对自己的业务开发的。