之前用ccc编了一个小游戏,然后继续往后端学习,看了一些资料,决定采用socket.io尝试一下。目前网上帖子貌似creator的版本都是1.5或者之前的。自己在学习的过程中,按照帖子一步一步做,也碰到了一些问题。于是记录一下解决的过程,免得忘了。
参考的大神linhaiwei123教程帖子:http://forum.cocos.com/t/cocoscreator-socketio-1-0/35538 ,按照大神的步骤一步一步来,因为版本跟大神用的不一样,所以里面的内容会有差异。
第一步:安装node.js和需要的包。
这里安装的版本是node.js v8.11.1,看官网写着大部分开发者都用这版,所以也没下载最新版的。socket.io 装的是socket.io v2.1。express 是v4.16.3,基本都是很新的版本。
第二步:按照大神的教程一步一步做,把该配置的路径配置好。
第三步:写个server.js的脚本,因为是测试,就随便在桌面上建个文件夹扔里了。
第一个server.js只为测试socket.io,所以没用express框架,后来测试好使了,又在server.js脚本上引用了express。大家可以根据是否安装了express选用。
图片1:没引用express

图片2:引用了express的server.js
然后在放server.js的文件夹的地址栏输入cmd,进入命令行界面,输入node server,会弹出console.log的内容 listen on 3000。
第四步:下载最新版的socket.io.js,github里有,或者也可以在官网下载。github和官网时不时的打不开,不知道什么原因,看机缘自己选择吧。
github下载后在dist目录下。
这个是官网的,就自己费点劲,复制一下。
第五步:按照cocos creator官方的提示,点开socket.io.js,加点hack的手段。加完这句代码后,把socket.io.js扔到creator项目script的目录下,然后引入为插件。
第六步:在creator的项目里,写个连接服务端的脚本,反正测试,就直接写在helloworld.js里了。写完代码,把js挂在canvas下,然后label扔到属性管理器中归属他的位置,这里大神教程写的很细,我就不重复了。
第七步:运行项目,就出结果了。
遇到的问题:
可能我比较手贱,再加上菜鸟,几乎把论坛里和网上能碰到的问题都碰上了。这里把我还记得的碰到的问题写一下。
问题1:MSBUILD : error MSB3428: Could not load the Visual C++ component “VCBuild.exe”.
忘了怎么引起的了。好像是装pomelo框架(这个框架跟这个帖子没关,不过弄这个pomelo的时候也基本把网上的问题都碰到了,这个有空另开贴说吧,都是泪)的时候,记得要装vs2010,后来发现这个也太特么大了,上学的时候用过2005,没觉得很占地方,2010居然要10g多,总之各种删,好像删错东西了,在试socket.io的时候导致了这个问题。结果发现网上还是有不少人碰到这个问题。https://github.com/nodejs/node-gyp/issues/307#issuecomment-240556824,这个是一个很长的楼,我居然耐心的一直看下去了,可能是看大家一会装2010,一会装2013,一会2015的,各种装各种试都不好使,然后坐那骂微软比较有意思,而且后面还真写了解决的方法。红框中的兄弟,说话还是很有哲理的,引人思考。https://github.com/nodejs/node-gyp#installation,这个github链接有比较全的解决方法,我比较懒,就按照windows系统的option 1 的方法执行了,成功解决问题。
问题二:Uncaught TypeError: Cannot read property ‘WebSocket’ of undefined。原来教程里的客户端脚本,有这一段判断(红框里的),我怎么改都不行,后来干脆给注释了,就没这个错误了,直接通过。有大神能给讲讲怎么改能通过,不胜感激,要不然,总是个问题埋在这,说不定在什么平台就出错了。
问题三:运行客户端后,服务器的命令行界面一直在刷“有人来了”,express那个版本的server.js的话就是一直刷"a user connected",时间长了,忘了怎么解决的了,好像是socket.io.js没引用好,或者是没点上引入为插件。不过如果按我之前的步骤做的话,应该是碰不到这个问题的。







