网络请求HttpClient,Socket,WebSocket
来源:互联网 发布:php curl异步请求 编辑:程序博客网 时间:2024/06/01 10:18
转载请说明出处:http://blog.csdn.net/lsmfeixiang/
github地址:https://github.com/teffy/cocos2dx
- 注意事项
- Http
- HttpClient
- HttpRequest
- HttpResponse
- 使用步骤
- 代码实例
- Socket
- SocketIO
- SIOClient
- SIODelegate
- WebSocket
- 使用步骤
- 源码下载
开发中肯定会用到网络这块,所以有必要学习一下http,socket,看官方demo里还有websocket,也顺便学习一下。
注意事项
如果使用VisualStudio的话,3.x使用Http会出现无法打开包含文件extensions/ExtensionExport.h 的错误,解决方案:
1、在你自己的头文件中加入#include ”cocos-ext.h”
2、使用命名空间USING_NS_CC_EXT;
3、选中工程右键“属性”->”配置属性“->”c/c++”->”常规”->”附加包含目录”中添加“”$(EngineRoot)
如图:
Http
cocos2dx中封装了对http的使用,主要的类有HttpClient,HttpRequest,HttpResponse。
HttpClient
处理异步http请求的单例模式 一旦请求完成,一个在生成请求时被提供的回调函数,会被发到主线程中;
补充:http://www.cocoachina.com/bbs/read.php?tid-200960.html
HttpRequest
定义了用户必须为 HttpClient::send(HttpRequest*) 方法打包的对象,因为 HttpRequset 对象会被用在UI线程和network线程之间, 为了避免崩溃,在AutoreleasePool中,requestObj->autorelease()是被禁止的 new/retain/release 依然工作,意味着你需要手动释放它
HttpResponse
定义了用户会在onHttpCompleted(sender, HttpResponse) 回调中接收的对象,被HttpClient内部使用,用户不需要手动创建HttpResponse,不需要手动销毁HttpResponse对象
使用步骤
1、创建HttpRequest对象
2、设置Url,RequestType,Tag,ResponseCallBack
3、使用HttpClient将Request加入请求队列
4、释放HttpRequest对象
5、在CallBack中对Response进行处理数据
代码实例
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
回调函数// step5
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
http的基本就这些了。
Socket
通常也称作”套接字”,用于描述IP地址和端口,是一个通信链的句柄,socket是对TCP/IP协议的封装和应用,cocos2dx中封装了对socket的使用,主要使用的类有
SocketIO、SIOClient、SocketIO::SIODelegate(当然实际项目中可能会用到不是官方的库)
SocketIO
单例和包装的类,提供了静态创建方法以及所有sockets的注册
SIOClient
到socket.io端点的单个连接
SIODelegate
处理socket.io事件的delegate类 ,回调处理的类,内部有4个方法需要处理
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
对这块不熟悉,看官方demo中的code,然后自己用Java写了一个socket的server,但是死活连不上,不知道为什么,回头研究明白了再放具体code。
WebSocket
WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。cocos2dx中封装了对于websocket的使用,相关的类有WebSocket、WebSocket::Delegate、WebSocket::Data、WebSocket::State。
WebSocket封装了所以的基本操作
WebSocket::Delegate是对于websocket各种操作的回调,有4个回调函数
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
WebSocket::Data是websocket数据相关
WebSocket::State表示websocket的连接状态
使用步骤
1、初始化WebSocket对象
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
2、发送数据
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
3、在回调函数中处理回调操作和数据
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
差不多就这些了,socket还没搞明白,大家可以去源码中查看用法。
源码下载
- 网络请求HttpClient,Socket,WebSocket
- 网络请求HttpClient,Socket,WebSocket
- 《Cocos2d学习之路》十、网络请求HttpClient,Socket,WebSocket
- HttpClient发送网络请求
- HttpClient请求网络
- 网络请求之HttpClient
- HttpClient网络请求
- httpclient网络请求数据
- HttpClient请求网络数据
- HttpClient网络请求数据
- HttpClient网络请求
- HttpClient网络请求
- [cocos2dx]网络请求httpClient
- Httpclient 请求网络
- HttpClient网络请求
- Android_请求网络HttpClient
- HttpClient实现网络请求
- HttpURLConnection、HttpClient网络请求
- Hibernate java.lang.StackOverflowError异常解决
- 小程序--导航栏篇
- Android接入微信支付踩过的坑
- CSocket详解
- DSP中断PIE控制器
- 网络请求HttpClient,Socket,WebSocket
- Centos7 docker pull 镜像报错:failed to register layer: devmapper
- 相对布局的控件布局
- UVa 10369
- hdu-3874-Necklace-(树状数组)
- Linux学习笔记:Linux文件系统上的特殊权限
- 13 分组数据:group by和having子句
- DeBruijin HDU
- python 学习~Numpy,PyCharm