iOS webSocket建立长连接

iOS-即时通讯

一般来说,即时通讯有两种方式WebSocketAjax 的选择
WebSocket出来之前,实现即时通讯通常使用Ajax来实现,而Ajax是通过轮询的方式进行实时数据的获取,轮询就是在指定的时间间隔内,进行HTTP 请求来获取数据,而这种方式会产生一些弊端,一方面产生过多的HTTP请求,占用带宽,增大服务器的相应,浪费资源,另一方面,因为不是每一次请求都会有数据变化(就像聊天室),所以就会造成请求的利用率低。
WebSocket正好能够解决上面的弊端,WebSocket是客户端与服务器之前专门建立一条通道,请求也只请求一次,而且可以从同道中实时的获取服务器的数据,所以当应用到实时的应用上时,WebSocket是一个很不错的选择。

Ajax 轮询方式本文就不作详细介绍

WebSocket 协议名

WebSocket的链接不是以http或https开头的,而是以ws和wss开头的,这里需要注意一下。
  • iOS原声并不能完美支持WebSocket建立长连接。因此这里我们需要用到SocketRocket
    第三方库,由facebook开源的组件。
    这个组件能够完美的兼容webSocket的链接
    具体使用方法可参考 iOS websocket接入

注意点

  • 需要设置单例,防止内存无限增大。
  • 需要保活,防止服务端自动断开长连接
  • 使用前需要先提供长连接地址wss://
  • 使用demo也可参考 iOS websocket接入一文中提供的demo地址
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容