自己构建pomelo的Cocos2d-iPhone Client
首先.从github上把pomelo-ios Client (https://github.com/NetEase/pomelo-iosclient)下载下来,并且将其依赖的第三方库socket.io-Objc和SocketRocket一并下载下来。
然后.新建一个Cocos2d的xcode项目,将这三个库的文件导入。并且将SocketRocket依赖的lib添加进来。
相信做过pomelo的iOS客户端的这两步很easy。如果这两步有什么问题可以在这片博文下问我。在我写这篇博文的时候SocketRocket暂时还部支持iOS6,所以项目的development target 建议设为5.1
接下来是把pomelo放到AppDelegate里面
AppDelegate.h
#import <UIKit/UIKit.h>
#import "Pomelo.h"@class RootViewController;@interface AppDelegate : NSObject <UIApplicationDelegate,PomeloDelegate> {UIWindow *window;RootViewController *viewController;
}@property (nonatomic) UIWindow *window;
@property (strong, nonatomic) Pomelo *pomelo;@end
AppDelegate.m
这个文件代码太多,就只贴添加的两行代码。由于Cocos2d中的Layer不能做alloc,init操作,所以不能像iOS Client那样在AppDelegate中把pomelo赋给一个Controller,然后一个个Controller相互把传递传递下去(因为一个工程只能有pomelo实例,你可以把pomelo看成单例,但是网易没有设计成单例,考虑到以后可能会有多个实例的设计,记住,pomelo只要实例化一次就好)
@synthesize pomelo;
在applicationDidFinishLaunching中
pomelo = [[Pomelo alloc] initWithDelegate:self];
然后在Layer中就可以直接实例化然后发送请求。
也需要#import @property之类的把pomelo文件先导进来
实例化:
AppDelegate *myDelegate = [[UIApplication sharedApplication] delegate];pomelo = myDelegate.pomelo;
发送请求
[pomelo connectToHost:@"127.0.0.1" onPort:3014 withCallback:^(Pomelo *p){NSLog(@"after connectToHost------------");NSDictionary *params = [NSDictionary dictionaryWithObject:@"chenyl107" forKey:@"uid"];[pomelo requestWithRoute:@"gate.gateHandler.queryEntry" andParams:params andCallback:^(NSDictionary *result){NSLog(@"after gate-----------");[pomelo disconnectWithCallback:^(Pomelo *p){// [self entryWithData:result];host = [result objectForKey:@"host"];port = [[result objectForKey:@"port"] intValue];NSLog(@"%@",host);NSLog(@"%d",port);//连接得到的connection服务器[pomelo connectToHost:host onPort:port withCallback:^(Pomelo *p){NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:name, @"username",channel, @"rid",nil];[p requestWithRoute:@"connector.entryHandler.enter" andParams:params andCallback:^(NSDictionary *result){NSArray *userList = [result objectForKey:@"users"];for (NSString *name1 in userList) {NSLog(@"%@",name1);//只是为了看一下该频道里有多少人}}];}];}];}];}];
简单分析下:connectToHost是与服务器建立长连接,建立好后发送一个request请求到gate服务器,gate服务器将分配给用户的connect服务器的host,port发送给客户端,客户端这个时候要断开与gate的连接,然后去连接connect服务器,然后对connect服务器发送一个request请求。然后接受connect返回的数据。
等过了期末考试再总结下从一个pomelo新建的helloworld程序怎么完善成一个从数据库到服务器再到客户端的完整的小小小demo。待续。。。。
自己构建pomelo的Cocos2d-iPhone Client相关推荐
- [转]Cocos2d iPhone
开端Cocos2d iPhone开发. 点击这里下载此教程的XCode项目. 加入IDP. 最重要的一步是注册成为一个专业的iPhone开发者.对开发而言它是免费的(只管当你需要在真机上运行你的程序时 ...
- Spring Boot文档阅读笔记-构建SOAP的web Service Client
同样,这里是使用Maven及Java8 同样Maven添加如下依赖: <dependency><groupId>wsdl4j</groupId><artifa ...
- Rotating Turrets: How To Make A Simple iPhone Game with Cocos2D Part 2
Rotating Turrets: How To Make A Simple iPhone Game with Cocos2D Part 2 Like this post? Follow me on ...
- [转]Android 和 iPhone 浏览器之战,第 2 部分: 为 iPhone 和 Android 构建基于浏览器的应用程序...
简介: 本文是共两部分的系列文章 "Android 和 iPhone 浏览器之战" 的第 2 部分,主要关注为 iPhone 和 Android 开发基于浏览器的应用程序.在第 1 ...
- (转载)如何学好iphone游戏开发
转自:http://www.cnblogs.com/zilongshanren/archive/2011/09/19/2181558.html 自从发布<如何学习iphone游戏开发>到 ...
- SpringBoot - 构建监控体系03_使用 Admin Server 管理 Spring 应用程序
文章目录 Pre 引入 Spring Boot Admin 组件 基于独立服务构建 Admin Server 基于注册中心构建 Admin Server 使用 Admin Server 监控系统 监控 ...
- 用python定位手机_使用Python定位android和iphone
这个问题已经在这里有了答案: > Is it possible to use Python to write cross-platform apps ...
- rest api 示例2_REST API教程– REST Client,REST Service和API调用通过代码示例进行了解释
rest api 示例2 Ever wondered how login/signup on a website works on the back-end? Or how when you sear ...
- iPhone的OpenGL ES的资源- 18,你必须知道 !
iPhone的OpenGL ES的资源- 18,你必须知道 ! OpenGL ES是编程的iPhone使用的图形API. 如果要创建自己的游戏引擎,从头开始设计一个游戏,或者创造一些其他图形密集型应用 ...
最新文章
- hadoop学习之旅1
- 中国人工智能学会通讯——人工智能如何造福人类 1.1 人工智能是中性技术
- linux上验证cudnn是否安装成功_非root用户安装cuda与cudnn
- AlertDialog的使用(一)
- C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法
- iOS之获取手机的系统信息
- 如何查看jar包的版本号?
- 教你如何用Keras搭建分类神经网络
- hibernate+spring 注解 对事务的一些信息 (还没有整理)
- Python读取word文档(python-docx包)
- Android Studio的build.gradle里面的各种版本信息
- noip模拟赛 蒜头君打地鼠
- Atitit java webservice客户端v2 目录 1.1. 生成stub代码wsimport.exe	1 1.2. Wsimport	2 1.3. clienttest	3 1.1
- 水准网测量平差matlab_基于MATLAB的测量平差计算
- 雷电android模拟器端口,【雷电命令】雷电安卓模拟器修改信息及常用adb命令整理贴...
- IPv6网络流量分析及性能监控
- 论文笔记:CLOCs: Camera-LiDAR Object Candidates Fusion for 3D Object Detection
- 全网通工业无线路由器多网口工业路由器
- LiDARTag:一种基于点云的实时估计基准标记物位姿的系统
- 【图像去模糊】Rethinking Coarse-to-Fine Approach in Single Image Deblurring
热门文章
- Anaconda介绍
- 蜀绣歌词将我们带入唯美的意境
- 记报错信息:java.lang.IllegalArgumentException: MALFORMED解决方案
- 关于table的一些非主流操作
- 有一段传奇 叫提高班
- KodBox安装和配置
- Oracle数据库 union连接时报 字符集不匹配 异常
- 微信支付退款通知解密(req_info)
- 入行软件测试3个月,每天平平无奇,感觉在浪费时间怎么办
- touchdesigner下载_TouchDesigner下载-多媒体特效交互软件Derivative TouchDesigner下载v099.2020.20200 官方版-西西软件下载...