首先.从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相关推荐

  1. [转]Cocos2d iPhone

    开端Cocos2d iPhone开发. 点击这里下载此教程的XCode项目. 加入IDP. 最重要的一步是注册成为一个专业的iPhone开发者.对开发而言它是免费的(只管当你需要在真机上运行你的程序时 ...

  2. Spring Boot文档阅读笔记-构建SOAP的web Service Client

    同样,这里是使用Maven及Java8 同样Maven添加如下依赖: <dependency><groupId>wsdl4j</groupId><artifa ...

  3. 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  ...

  4. [转]Android 和 iPhone 浏览器之战,第 2 部分: 为 iPhone 和 Android 构建基于浏览器的应用程序...

    简介: 本文是共两部分的系列文章 "Android 和 iPhone 浏览器之战" 的第 2 部分,主要关注为 iPhone 和 Android 开发基于浏览器的应用程序.在第 1 ...

  5. (转载)如何学好iphone游戏开发

    转自:http://www.cnblogs.com/zilongshanren/archive/2011/09/19/2181558.html 自从发布<如何学习iphone游戏开发>到 ...

  6. SpringBoot - 构建监控体系03_使用 Admin Server 管理 Spring 应用程序

    文章目录 Pre 引入 Spring Boot Admin 组件 基于独立服务构建 Admin Server 基于注册中心构建 Admin Server 使用 Admin Server 监控系统 监控 ...

  7. 用python定位手机_使用Python定位android和iphone

    这个问题已经在这里有了答案:            >            Is it possible to use Python to write cross-platform apps ...

  8. 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 ...

  9. iPhone的OpenGL ES的资源- 18,你必须知道 !

    iPhone的OpenGL ES的资源- 18,你必须知道 ! OpenGL ES是编程的iPhone使用的图形API. 如果要创建自己的游戏引擎,从头开始设计一个游戏,或者创造一些其他图形密集型应用 ...

最新文章

  1. hadoop学习之旅1
  2. 中国人工智能学会通讯——人工智能如何造福人类 1.1 人工智能是中性技术
  3. linux上验证cudnn是否安装成功_非root用户安装cuda与cudnn
  4. AlertDialog的使用(一)
  5. C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法
  6. iOS之获取手机的系统信息
  7. 如何查看jar包的版本号?
  8. 教你如何用Keras搭建分类神经网络
  9. hibernate+spring 注解 对事务的一些信息 (还没有整理)
  10. Python读取word文档(python-docx包)
  11. Android Studio的build.gradle里面的各种版本信息
  12. noip模拟赛 蒜头君打地鼠
  13. Atitit java webservice客户端v2 目录 1.1. 生成stub代码wsimport.exe 1 1.2. Wsimport 2 1.3. clienttest 3 1.1
  14. 水准网测量平差matlab_基于MATLAB的测量平差计算
  15. 雷电android模拟器端口,【雷电命令】雷电安卓模拟器修改信息及常用adb命令整理贴...
  16. IPv6网络流量分析及性能监控
  17. 论文笔记:CLOCs: Camera-LiDAR Object Candidates Fusion for 3D Object Detection
  18. 全网通工业无线路由器多网口工业路由器
  19. LiDARTag:一种基于点云的实时估计基准标记物位姿的系统
  20. 【图像去模糊】Rethinking Coarse-to-Fine Approach in Single Image Deblurring

热门文章

  1. Anaconda介绍
  2. 蜀绣歌词将我们带入唯美的意境
  3. 记报错信息:java.lang.IllegalArgumentException: MALFORMED解决方案
  4. 关于table的一些非主流操作
  5. 有一段传奇 叫提高班
  6. KodBox安装和配置
  7. Oracle数据库 union连接时报 字符集不匹配 异常
  8. 微信支付退款通知解密(req_info)
  9. 入行软件测试3个月,每天平平无奇,感觉在浪费时间怎么办
  10. touchdesigner下载_TouchDesigner下载-多媒体特效交互软件Derivative TouchDesigner下载v099.2020.20200 官方版-西西软件下载...