使用背景:需要跟服务器长期保持连接进行即时通讯;还有在跟智能硬件建立实时链接进行同步智能硬件的状态等,最近我就做项目就碰到需要实时更新智能硬件的状态(比如智能硬件的电量,以及其它工作状态),跟智能硬件通讯中间是通过了服务器的,所以要实时跟服务器建立连接。具体实现如下:
使用步骤:
1、导入AsyncSocket.m/AsyncSocket.h文件到xcode工程中去。
2、添加CFNetwork.framework框架。
3、导入#import "AsyncSocket.h"头文件。
4、创建AsyncSocket对象、定时发送心跳包定时器对象、心跳包数据内容对象
5、开始连接服务器,连接需要服务器地址和端口号
6、创建用于发送心跳包的定时器
LongPollTime 为心跳包发送时间间隙
7、发送心跳包的内容,我这里是发送的是一个空字节。
8、发送心跳包和停止心跳包
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