iOS开发使用AsycSocket第三方库,长链接,
那么为什么收不到服务器的推送消息?
应该不是 APNS ,不是苹果的推送业务,
如果是的话,那么我们用的QQ,两个用户进行聊天的时候,不可能每一个聊天信息都要经过苹果服务器那边的呀
APNS你app搭建好了么?
//设置读取超时 -1 表示不会使用超时
#define READ_TIME_OUT -1
#define MAX_BUFFER 1024
//发送消息成功之后回调
//接受消息成功之后回调
(void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag
{
//服务端返回消息数据量比较大时,可能分多次返回。所以在读取消息的时候,设置MAX_BUFFER表示每次最多读取多少,当data.length < MAX_BUFFER我们认为有可能是接受完一个完整的消息,然后才解析
if( data.length < MAX_BUFFER )
{
//收到结果解析...
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
NSLog(@"%@",dic);
//解析出来的消息,可以通过通知、代理、block等传出去
}
[self.socket readDataWithTimeout:READ_TIME_OUT buffer:nil bufferOffset:0 maxLength:MAX_BUFFER tag:0];
在onSocket重载函数,有如定义采用是专门用来处理SOCKET的接收数据的.
-(void) onSocketAsyncSocket *)sock didReadDataNSData *)data withTaglong)tag
一般在中间将其转换成NSString进行显示.