xuchuandong520
穿马甲的小样
采纳率42.9%
2015-11-12 08:58

iOS使用AsycSocket第三方库与服务器连接,怎样接收服务器的推送消息?

iOS开发使用AsycSocket第三方库,长链接,
那么为什么收不到服务器的推送消息?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • LL_Running86 LL86 6年前

    在onSocket重载函数,有如定义采用是专门用来处理SOCKET的接收数据的.

    -(void) onSocketAsyncSocket *)sock didReadDataNSData *)data withTaglong)tag

    一般在中间将其转换成NSString进行显示.

    点赞 评论 复制链接分享
  • LL_Running86 LL86 6年前

    //设置读取超时 -1 表示不会使用超时
    #define READ_TIME_OUT -1

    #define MAX_BUFFER 1024

    //发送消息成功之后回调

    • (void)onSocket:(AsyncSocket *)sock didWriteDataWithTag:(long)tag { //读取消息 [self.socket readDataWithTimeout:-1 buffer:nil bufferOffset:0 maxLength:MAX_BUFFER tag:0]; }

    //接受消息成功之后回调

    • (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];

    
    
    点赞 评论 复制链接分享
  • u014116643 mifit 6年前

    APNS你app搭建好了么?

    点赞 评论 复制链接分享
  • xuchuandong520 穿马甲的小样 6年前

    应该不是 APNS ,不是苹果的推送业务,
    如果是的话,那么我们用的QQ,两个用户进行聊天的时候,不可能每一个聊天信息都要经过苹果服务器那边的呀

    点赞 评论 复制链接分享

相关推荐