你的位置:首页 > 操作系统

[操作系统]AsyncSocket的长连接使用


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

 

使用步骤:

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