首页 > 代码库 > Cocos2d-x ios 下http请求的另一种实现
Cocos2d-x ios 下http请求的另一种实现
简单描述下需求:游戏要加入事件log,比如玩家升到10级;创建角色;或是,触发这些事件后要求客户端忘后台抛送一条log信息。一般情况下,我们可以直接使用cocos自带的HttpClient(底层用libcurl实现)来处理,但很多时候,我们游戏其他逻辑也在用HttpClient,比如登录、下载资源等等,这就可能带来一个问题,如果某个时间客户端产生多条错误日志(或是log服务器的带宽有限,大量并发),这些日志请求的发送势必会影响主游戏逻辑,抢占curl队列。
另外也要提到curl的一个特性,当我们调用 curl_easy_perform 函数执行请求,必须等到服务器返回结果后面才能继续,也就是说如果后台服务器因其他原因响应延迟,整个curl队列都得等待。
如何解决上面的尴尬? 显然,比起日志请求,游戏逻辑必须优先保证。 所以我们让日志请求走另外的方式实现,方案:用iOS sdk的http实现。非常简单,而且,抛出去不用管返回!特别适合日志记录这类需求
以下是简单的代码,对于安卓也是类似,我们可以用Android SDK里面的http方式来实现
void sendHttp(const char *url0,int method){ NSString *url = [NSString stringWithUTF8String:url0]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];// autorelease]; [request setURL:[NSURL URLWithString:url]]; if (method == 0) { [request setHTTPMethod:@"POST"]; } else { [request setHTTPMethod:@"GET"]; } NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:nil];}
Cocos2d-x ios 下http请求的另一种实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。