微信、QQ这类IM APP怎么做——谈谈WebSocket
1、WebSocket的使用场景
(1)社交聊天
聊天特点:低延迟,高及时。
(2)弹幕
(3)多玩家游戏
(4)协同编辑
(5)股票基金实时报价
(6)体育实况更新
(7)视频会议/聊天
(8)基于位置应用
(9)在线教育
(10)智能家居
家里的智能设备的状态必须要实时展现到手机APP客户端上,毫无疑问选择了WebSocket。
2、WebSocket诞生由来
(1)最开始的轮询Polling阶段
客户端和服务器之间会一直进行连接,每隔一段时间就会询问一次。
(2)改进版的长轮询Long Polling阶段
客户端发送HTTP请求A给服务器,服务器会等待下一个请求B到了之后才回将A的回复返回给客户端。
(3)WebSocket的诞生
现在急需的需求是能支持客户端和服务器的双向通信,而且协议的头部又不像HTTP的Header那么大,于是WebSocket就诞生了。
3、谈谈WebSocket协议原理
WebSocket是应用层第七层的一个应用层协议,他必须依赖HTTP协议进行一次握手,握手成功后,数据就直接从TCP通道传输出去了,与HTTP无关了。
WebSocket的数据是以frame的形式传输。
4、WebSocket和Socket的区别与联系
首先,Socket不是一个协议。他工作在OSI模型中的第5层(会话层),是为了方便大家直接使用更底层协议(一般是TCP或者UDP)而存在的一个抽象层。Socket是对TCP/UDP协议的封装,Socket本身不是协议,只是一个调用接口(API)。
Socket在通讯过程中,服务器监听端口是否有连接请求。客户端向服务器发送连接请求,服务端收到连接请求就给客户端发送消息,这样就建立起一个连接。客户端和服务端之后就可以互发消息了。
所以,基于WebSocket和Socket都可以开发出IM社交聊天类的APP。
5、IOS平台有哪些WebSocket和Socket开源框架
Socket开源框架:CocoaAsyncSocket socketio/socket.io-chlient-swift
WebSocket开源框架:facebook/SocketRocket tidwall/SwiftWebSocket
6、IOS平台如何实现WebSocket
自行百度学习。