2020最新creator+socketio+nodejs客户端服务端互连(附dome)

这几天忙里偷点闲突发奇想想自己搞一个服务器和creator互连,想了一下最后选了nodejs,于是乎在论坛和博客搜了不少教程,但是做起来总是和教程多少有点差别,总是碰到莫名其妙的问题跑不起来,但最后架不住我聪明才智(东抄西抄),还是用最新的版本跑起来了。废话不多说,直接上过程:
首先去nodejs官网下载最新稳定版本的nodejs,地址:https://nodejs.org/zh-cn/。
下载后直接下一步安装,也可以选择自己的路径。我的版本是:image

然后打开nodejs的安装目录:1
在这个安装目录下打开cmd,先后输入npm install --save express和npm install --save socket.io安装express和socketioimage
然后在你的环境变量里面新增NODE_PATH,值为你的nodejs的node_module目录:image
ok,准备工作完成,开始干代码(代码是谁?)。
在电脑的任意文件夹新建一个js文本,我就取名server了,加入如下代码:


保存之后,在server目录下打开cmd,键入node 脚本名.js回车即可开启服务器。image
输出listening on : 3000即代码服务器启动了,这时候用浏览区打开http://localhost:3000/可以访问
image
会出现hello world。
好了 服务器到此结束,接下来是creator客户端,我用的是2.3.4的版本(够新了吧)。
客户端大家应该很熟的吧,直接上代码:

其中opts是为了解决浏览器跨域问题(你要问我为什么加了这个就能解决,我也不知道)。
哦对了,socketio文件还没导入,为了防止服务器的socketio版本和客户端的不一致导致其他问题,我是直接在nodejs里面把socketio文件拷贝出来的,在这个目录:
image
拖到客户端文件夹里面导入为插件。(官网提示需要区分native环境,不过由于官网的socket已经很久没更新版本了,已经和最后的跑不起来了,会自动断开连接,所以我没有加 ```
if (!cc.sys.isNative) {
// SocketIO 原始代码
}
的判断,而是直接使用我的socketio,并且将官方的socket模块去掉了,这样网页和原生都能跑了)。
image 去掉勾
好了,挂上脚本,拖入节点,点击运行,效果如图。
image
image
细节没讲的很细,反正有demo,大家可以自己下载下来玩玩。
碰到的问题:
1 socketio版本不一致导致跑不起来
2 跨域问题(这个真是头疼,网上找了好多资料才解决)
3 新版和旧版写法不一样,使用网上老版的写法各种错误,差点怀疑人生,还不一定是creator的代码
demo:demo.rar (2.0 MB)

8赞

针不戳啊针不戳

先顶 有空试试

楼主为什么不直接用websocket

之前项目也有用websocket,只是突然想用这个试一下,哈哈哈

请问楼主我用浏览器试了一下demo,有a user connected但是label没有出现文字,这个文字是打开时就会出现的吗?

是的 打开就有的,我刚下下来用最新的node试了下,是可以的哦