CocoaAsyncSocket 学习 (一)

417 查看

socket 连接

即时通讯最大的特点就是实时性,基本感觉不到延时或是掉线,所以必须对socket的连接进行监视与检测,在断线时进行重新连接,如果用户退出登录,要将socket手动关闭,否则对服务器会造成一定的负荷。

一般来说,一个用户(对于ios来说也就是我们的项目中)只能有一个正在连接的socket,所以这个socket变量必须是全局的,这里可以考虑使用单例或是AppDelegate进行数据共享,本文使用单例。如果对一个已经连接的socket对象再次进行连接操作,会抛出异常(不可对已经连接的socket进行连接)程序崩溃,所以在连接socket之前要对socket对象的连接状态进行判断

一 下载完包结构

11794643-d65810648b7619f9

RunLoopGCD两个文件夹中有两套
一种基于NSRunloop,一种基于GCD,后面讲的都是用基于GCDCocoaAsyncSocket,因为RunLoop中的将被废弃

二 项目中应用CocoaAsyncSocket

  • GCD下四个文件拖入项目
  • 创建单例类

  • 然后写连接方法
    添加端口和服务器地址属性
    添加连接方法

实现