Websocket 消息推送优点 :
开发周期短,维护成本低。
消息不经转第三方服务器,直接由服务器发送到客户端,安全性好。基于 GCM 或者 APNS 的消息推送会把消息发送 GCM 服务器或 APNS 服务器,再由他们转发到客户端。
自己开发服务端,可扩展性好。
对于客户端而言,长连接比轮询的方式性能和及时性更好。
Websocket 消息推送缺点 :
长连接浪费服务端资源。
不能后台运行,一旦 app 退出就不能收到 notification。
由于服务器保持多个长连接,性能将会下降,最大连接数也会有限制。
第三方:SocketRocket
https://github.com/facebook/SocketRocket
SJWebSocketDemo
https://github.com/sunsunsunJunn/SJWebSocketDemo
理解WebSocket心跳及重连机制
在使用websocket的过程中,有时候会遇到网络断开的情况,但是在网络断开的时候服务器端并没有触发onclose的事件。这样会有:服务器会继续向客户端发送多余的链接,并且这些数据还会丢失。所以就需要一种机制来检测客户端和服务端是否处于正常的链接状态。因此就有了websocket的心跳了。还有心跳,说明还活着,没有心跳说明已经挂掉了。
- 为什么叫心跳包呢?
它就像心跳一样每隔固定的时间发一次,来告诉服务器,我还活着。 - 心跳机制是?
心跳机制是每隔一段时间会向服务器发送一个数据包,告诉服务器自己还活着,同时客户端会确认服务器端是否还活着,如果还活着的话,就会回传一个数据包给客户端来确定服务器端也还活着,否则的话,有可能是网络断开连接了。需要重连~
网友评论