PS(废话):

这段时间都在研究网易的Pomelo框架,作为新手小白,自然遇到了不少坑爹的事情。(当然也有可能是因为自己技术不过关的原因所以导致在很多基础的问题上纠结了很久。)网上也搜索了好久,但是基本都是复制黏贴的教程,按照教程做肯定没有问题,但是对于新手来说个别细节上还是有很多无法理解或者说新手容易犯错的地方。于是乎我就决定把自己遇到的问题写一下,如果能够帮助以后入坑的同行新手,也算是积了点阴德,避免大家少走弯路,或者说减少研究的时间。

好了废话不多说了,还是抓紧开始正题吧。

序言

虽然Pomelo官方的文档已经对于如何在客户端中使用Pomelo有了比较详细的描述,对于一些大拿来说肯定看了文档就会了,但是奈何鄙人水平实在有限,所以对于CocosCreator这种没有在官方文档内的客户端,自然就不会了。所以就果断搜索了一下 “如何在CocosCreator中使用Pomelo” 。然后基本搜索到的就是利用聊天为例子的那篇文章了----->点击我进入文章

当然例子肯定是没有问题的。但是我自己在使用的时候对于一些细节的问题又产生了疑惑。再加上手贱。。。。所以就有了更大的疑惑了。。。然后就纠结了好久。。

如何在客户端中正确使用Pomelo

  1. 首先去下载ccc-pomelo-chat-client源码,然后把源码中的ccc-pomelo-chat-client/assets/pomelo拷贝到你的 CocosCreator 项目 assets 目录下,这样在你的项目中即可使用 pomelo-client 相关 API 了。
  2. 在onload方法中 初始化pomelo ,带上host 参数,port参数

  3. 在onload方法中on好对于服务器的各类响应,就像这样

  4. 在需要主动发送消息的地方写好request方法或者notify方法(我就是作死死在这里的。)
  5. 然后就大功告成了。

个人手贱遇到的坑

根据官方的API,其实很简单一共也就4个方法,简单的不能再简单了。但往往就是这么简单的几个方法把我绕进去了。。。不得不感叹自己的智商越来越低了。

首先是pomelo.init(params,cb) 这个方法,老实说根据官方的文档,我是有点纠结的。因为他写的是“这通常是客户端的第一次调用”,再加上下载过来的代码是这样子的

虽然我知道init是初始化的作用,但是我在具体写代码的时候又特么作死了一下,在场景的onload方法中又加了一个request方法,如下图所示



结果就出错了,之后我又尝试了复制两个init方法,妥妥的成功了,然后就导致我在一瞬间怀疑每一次request请求都要放在Init方法里面。但是作为一名还算写过代码的渣渣程序员来说,知道这个想法肯定是错误的。其正确的顺序肯定是init完了之后你爱去哪里request就去哪里request的。于是乎就纠结了好久。

最后问了群里的人才发现原来是因为我request方法也写在onload方法里面,所以就导致Init方法还没有调用成功,他就在那边request了,这样自然会出错了

(哎果然太久没写代码了就容易闹出这种低级错误=。=)

个人经验小结

客户端的方法中是包含以下几个参数的 route msg cb 而服务端则是 msg session next

首先是对应关系

  1. 客户端的msg对应的就是服务端中msg
  2. cb对应的就是服务端的next
  3. route着是服务端的路由,
  4. session则是不需要传递的,因为在init的时候已经创建了,在之后的调用中会自动传递。

其次就是参数内的内容了

  1. route参数就是一串string格式的路由,可以简单的理解为 “服务器.类名.方法名”
  2. msg内的参数我目前是用key-value的数组(其他格式我目前还没尝试以后有机会会进行尝试)
  3. cbnext内的参数进行对应。对于初学javascipt的人可能会有些难理解。但是问题不大。

CocosCreator游戏开发---菜鸟学习之路(三)如何在CocosCreator中使用Pomelo的更多相关文章

  1. CocosCreator游戏开发---菜鸟学习之路(一)

    PS(废话): 辞职后在家好久好久了,久到经济不允许了,接着就准备再次出去找工作了,然而工作哪有那么好找,特别是像我这种菜鸟.而且我还准备转行,准备去做游戏,技能等级接近于0,那工作就更难找了.既然如 ...

  2. CocosCreator游戏开发---菜鸟学习之路(二)SocketIO简易教程

    请先参考教程司令部-SocketIO教程进行相关操作 开发完成后部分用户会出现持续输出 a userConnected的BUG 如下图所示 经过一段时间的BUG检查终于发现了问题所在.每个人碰到的情况 ...

  3. IOS开发---菜鸟学习之路--(二十二)-近期感想以及我的IOS学习之路

    在不知不觉当中已经写了21篇内容 其实一开始是没有想些什么东西的 只是买了Air后 感觉用着挺舒服的,每天可以躺在床上,就一台笔记本,不用网线,不用电源,不用鼠标,不用键盘,干干脆脆的就一台笔记本. ...

  4. IOS开发---菜鸟学习之路--(三)-数据解析

    第三篇 上一篇我们讲了如何通过NSURL类来获取数据, 这一章我们来讲下对于获取过来的数据如何解析. 好了直接进入正文吧. 正文: 上一篇讲了 我们获取过来的数据格式是JSON格式的 大家可以搜下对应 ...

  5. IOS开发---菜鸟学习之路--(一)

    PS(废话): 看了那么多的博客文章,发现大部分人都一直在强调写技术博客的重要性,索性自己也耐着性子写写看吧. 写博客的重要性之类的说明,我就不做复制黏贴的工作了.因为自己没有写过多少,所也不清楚是不 ...

  6. IOS开发---菜鸟学习之路--(四)-登陆界面

    本篇的内容其实大家 参照橘子的那本开发的书的话  上面讲解的是更详细的 一些实现. 我这边唯一的区别就是 做了网络数据的获取 以及 验证成功后 进行界面的跳转.. 第四篇了 本篇主讲登陆模块 首先先放 ...

  7. IOS开发---菜鸟学习之路--(二)-数据获取

    第二篇了. 本篇要讲的是数据获取. 为什么将数据获取放在第二篇就讲呢? 因为我在看别人教程的时候都是先讲控件的属性,然后怎么用控件开始. 可是毕竟咱们也是有一定开发经验的人..所以很自然就想先知道怎么 ...

  8. IOS开发---菜鸟学习之路--(二十三)-直接利用键值对的方式来处理数据的感想

    首先声明,本文纯粹只是做为本人个人新手的理解.文中的想法我知道肯定有很多地方是错的. 但是这就是我作为一个新人的使用方法,对于大牛非常欢迎指导,对于喷子请绕道而行. 由于这是早上跟我学长讨论数据处理时 ...

  9. IOS开发---菜鸟学习之路--(十七)-利用UITableView实现个人信息界面

    首先来看下我们要实现的效果 需要实现这样的效果 然后我们开始动手吧. 首先选择添加一个新的ViewController 然后打开XIB文件,添加一UITableView 并将样式设置为分组 同时将按住 ...

随机推荐

  1. Spark性能调优之合理设置并行度

    Spark性能调优之合理设置并行度 1.Spark的并行度指的是什么?     spark作业中,各个stage的task的数量,也就代表了spark作业在各个阶段stage的并行度!     当分配 ...

  2. 搭建mybatis时的小问题

    1.源文件中的xml文件经过编译后没有打包到classes中去,在源文件包中写的mapper文件运行时找不到. 解决办法: pom文件build下添加编译时加入xml和resource文件下的所有文件 ...

  3. 利用 HTML5 WebGL 构建的 3D 拓扑图

    现在,3D 模型已经用于各种不同的领域.在医疗行业使用它们制作器官的精确模型:电影行业将它们用于活动的人物.物体以及现实电影:视频游戏产业将它们作为计算机与视频游戏中的资源:在科学领域将它们作为化合物 ...

  4. mybatis_SQL映射(3)

    文章摘录自:http://blog.csdn.net/y172158950/article/details/17304645 1. 表关联 a) 嵌套查询(传说中的1+N问题) <resultM ...

  5. selenium+python自动化测试系列(一):登录

        最近接手商城的项目,针对后台测试,功能比较简单,但是流程比较繁多,涉及到前后台的交叉测试.在对整个项目进行第一轮测试完成之后,考虑以后回归测试任务比较重,为了减轻回归测试的工作量,所以考虑后台 ...

  6. java面向对象的三大特性——多态

    多态 所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底 ...

  7. Express使用进阶:cookie-parser中间件实现深入剖析

    文章导读 cookie-parser是Express的中间件,用来实现cookie的解析,是官方脚手架内置的中间件之一. 它的使用非常简单,但在使用过程中偶尔也会遇到问题.一般都是因为对Express ...

  8. httpd: Could not reliably determine the server's fully qualified domain name, using ::1 for ServerName

    问题原因: httpd服务配置文件,并没有设置解析根地址,无法可靠地确定服务器的完全合格的域名 如何解决? httpd的配置文件放在 /etc/httpd/conf/目录下,去掉ServerName注 ...

  9. IDEA新建Maven项目

    Maven是什么? 当我们在开发一个项目的时候,不可避免地会使用到第三方的类库,而它们又可能依赖着另外的Jar包,又得引入其他Jar包,而且我们很容易就会引漏掉~然后就会报错,有时候报的错会让我们花掉 ...

  10. 通过反编译深入理解Java String及intern(转)

    通过反编译深入理解Java String及intern 原文传送门:http://www.cnblogs.com/paddix/p/5326863.html 一.字符串问题 字符串在我们平时的编码工作 ...