简单描述下需求:游戏要加入事件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 == )
{
[request setHTTPMethod:@"POST"];
}
else
{
[request setHTTPMethod:@"GET"];
}
NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:nil];
}

Cocos2d-x ios 下http请求的另一种实现的更多相关文章

  1. iOS UIWebview添加请求头的两种方式

    1.在UIWebviewDelegate的方法中拦截request,设置request的请求头,废话不多说看代码: - (BOOL)webView:(UIWebView *)webView shoul ...

  2. ios htttp网络请求cookie的读取与写入(NSHTTPCookieStorage)

    当你访问一个网站时,NSURLRequest都会帮你主动记录下来你访问的站点设置的Cookie,如果 Cookie 存在的话,会把这些信息放在 NSHTTPCookieStorage 容器中共享,当你 ...

  3. ios/iphone手机请求微信用户头像错位BUG及解决方法

    转:http://www.jslover.com/code/527.html ios/iphone手机请求微信用户头像错位BUG及解决方法 发布时间:2014-12-01 16:37:01 评论数:0 ...

  4. web移动端Fixed在Input获取焦点时ios下产生的BUG及处理

    1.现象 可以看到下面两张图,图1搜索框为fixed固定在顶部,滚动没有任何问题. 图2当光标进入搜索框时,ios自作聪明的把光标定位到中间,并且fixed属性被自动修改成了absolute.此时注意 ...

  5. iOS下JS与OC互相调用(六)--WKWebView + WebViewJavascriptBridge

    上一篇文章介绍了UIWebView 如何通过WebViewJavascriptBridge 来实现JS 与OC 的互相调用,这一篇来介绍一下WKWebView 又是如何通过WebViewJavascr ...

  6. iOS下JS与OC互相调用(五)--UIWebView + WebViewJavascriptBridge

    WebViewJavascriptBridge是一个有点年代的JS与OC交互的库,使用该库的著名应用还挺多的,目前这个库有7000+star.我去翻看了它的第一版本已经是4年前了,在版本V4.1.4以 ...

  7. iOS下JS与OC互相调用(一)--UIWebView 拦截URL

    最近准备把之前用UIWebView实现的JS与原生相互调用功能,用WKWebView来替换.顺便搜索整理了一下JS 与OC 交互的方式,非常之多啊.目前我已知的JS 与 OC 交互的处理方式: * 1 ...

  8. iOS下JS与原生OC互相调用(总结)

    这是去年总结的一篇文章,也一并先放到这个目录下好了. iOS开发免不了要与UIWebView打交道,然后就要涉及到JS与原生OC交互,今天总结一下JS与原生OC交互的两种方式. JS调用原生OC篇 方 ...

  9. IOS开发 REST请求 ASIHTTPRequest用法

    ASIHTTPRequest类库简介和使用说明 官方网站: http://allseeing-i.com/ASIHTTPRequest/ .可以从上面下载到最新源码,以及获取到相关的资料. 使用iOS ...

随机推荐

  1. Linux下GPIO驱动(二) ----s3c_gpio_cfgpin();gpio_set_value();

    首先来看s3c_gpio_cfgpin(); int s3c_gpio_cfgpin(unsigned int pin, unsigned int config) { struct s3c_gpio_ ...

  2. Python获取两个ip之间的所有ip

    int_ip = lambda x: '.'.join([str(x/(256**i)%256) for i in range(3,-1,-1)]) ip_int = lambda x:sum([25 ...

  3. WPF自定义控件之仿Win8滚动条--ScrollViewer

    1.说明 自己学习WPF不是很久,现将自己做的一些小项目中用到的自定义控件整理出来,方便以后使用,不尽人意之处,还请多多批评与指导,现在就来实现自定义ScrollViewer仿Win8滚动条 2.效果 ...

  4. MVC 4 网页版发送 邮件的配置问题

    有时项目要用到邮箱验证就要发送邮件传统的解决方案: public void SendResetPasswordEmail(string email) { MailAddress from = new ...

  5. 安装使用adobe_photoshop_cs6

    1.先断开网络,安装官方原版PS程序. 2.在安装程序界面选择“试用”安装. 3.等安装完成后,退出程序. 4.复制破解补丁到安装路径覆盖,如:D:\Program Files\Adobe\Adobe ...

  6. C# 启动进程和杀死进程

    /// <summary> /// 杀死进程 /// </summary> private void KillProcesses() { var cfn = GetAppset ...

  7. 如何学习C++[转]

    关于学C++, 我向你推荐一些书(当然能够结合课内项目实践更好) 1.The C++ Programming Language(Bjarne Stroustrup)2. Inside The C++ ...

  8. VS Extension: Create a txt file and set the content

    使用 Visual Studio Extension 创建一个文本文件,并填入内容. 需要引用 EnvDTE C:\Program Files (x86)\Microsoft Visual Studi ...

  9. 用JavaScript探测页面上的广告是否被AdBlock屏蔽了的方法

    每个人都讨厌广告.看电视.看电影.看优酷.看网页时,对满天飞的广告也是深恶痛绝.广告是一个不招人喜欢的东西.但是,对一个中小网站站长/博客主来说,广告几乎是唯一的能成支持网站/博客正常运转的资金来源. ...

  10. FZU 2150 Fire Game(BFS)

    点我看题目 题意 :就是有两个熊孩子要把一个正方形上的草都给烧掉,他俩同时放火烧,烧第一块的时候是不花时间的,每一块着火的都可以在下一秒烧向上下左右四块#代表草地,.代表着不能烧的.问你最少花多少时间 ...