这几天忙里偷点闲突发奇想想自己搞一个服务器和creator互连,想了一下最后选了nodejs,于是乎在论坛和博客搜了不少教程,但是做起来总是和教程多少有点差别,总是碰到莫名其妙的问题跑不起来,但最后架不住我聪明才智(东抄西抄),还是用最新的版本跑起来了。废话不多说,直接上过程:
首先去nodejs官网下载最新稳定版本的nodejs,地址:https://nodejs.org/zh-cn/。
下载后直接下一步安装,也可以选择自己的路径。我的版本是:![]()
然后打开nodejs的安装目录:
在这个安装目录下打开cmd,先后输入npm install --save express和npm install --save socket.io安装express和socketio![]()
然后在你的环境变量里面新增NODE_PATH,值为你的nodejs的node_module目录:
ok,准备工作完成,开始干代码(代码是谁?)。
在电脑的任意文件夹新建一个js文本,我就取名server了,加入如下代码:
保存之后,在server目录下打开cmd,键入node 脚本名.js回车即可开启服务器。

输出listening on : 3000即代码服务器启动了,这时候用浏览区打开http://localhost:3000/可以访问

会出现hello world。
好了 服务器到此结束,接下来是creator客户端,我用的是2.3.4的版本(够新了吧)。
客户端大家应该很熟的吧,直接上代码:
其中opts是为了解决浏览器跨域问题(你要问我为什么加了这个就能解决,我也不知道)。
哦对了,socketio文件还没导入,为了防止服务器的socketio版本和客户端的不一致导致其他问题,我是直接在nodejs里面把socketio文件拷贝出来的,在这个目录:

拖到客户端文件夹里面导入为插件。(官网提示需要区分native环境,不过由于官网的socket已经很久没更新版本了,已经和最后的跑不起来了,会自动断开连接,所以我没有加 ```
if (!cc.sys.isNative) {
// SocketIO 原始代码
}
的判断,而是直接使用我的socketio,并且将官方的socket模块去掉了,这样网页和原生都能跑了)。
去掉勾好了,挂上脚本,拖入节点,点击运行,效果如图。


细节没讲的很细,反正有demo,大家可以自己下载下来玩玩。
碰到的问题:
1 socketio版本不一致导致跑不起来
2 跨域问题(这个真是头疼,网上找了好多资料才解决)
3 新版和旧版写法不一样,使用网上老版的写法各种错误,差点怀疑人生,还不一定是creator的代码
demo:demo.rar (2.0 MB)

