AsyncSocket的长连接使用

时间:2021-10-21 11:20:14

使用背景:需要跟服务器长期保持连接进行即时通讯;还有在跟智能硬件建立实时链接进行同步智能硬件的状态等,最近我就做项目就碰到需要实时更新智能硬件的状态(比如智能硬件的电量,以及其它工作状态),跟智能硬件通讯中间是通过了服务器的,所以要实时跟服务器建立连接。具体实现如下:

使用步骤:

1、导入AsyncSocket.m/AsyncSocket.h文件到xcode工程中去。

2、添加CFNetwork.framework框架。

3、导入#import "AsyncSocket.h"头文件。

4、创建AsyncSocket对象、定时发送心跳包定时器对象、心跳包数据内容对象

AsyncSocket的长连接使用

5、开始连接服务器,连接需要服务器地址和端口号

AsyncSocket的长连接使用

6、创建用于发送心跳包的定时器

LongPollTime 为心跳包发送时间间隙

AsyncSocket的长连接使用

7、发送心跳包的内容,我这里是发送的是一个空字节。

AsyncSocket的长连接使用

8、发送心跳包和停止心跳包

AsyncSocket的长连接使用

9、asyncSocket代理

//即将连接

- (BOOL)onSocketWillConnect:(AsyncSocket *)sock

//连接已完成

- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port

//发送已完成

- (void)onSocket:(AsyncSocket *)sock didWriteDataWithTag:(long)tag

//接收消息

- (void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag

程序源码地址 http://pan.baidu.com/s/1buwHC6