pomelo服务器对接cocos creator客户端相关(面向纯小白)

pomelo服务器对接cocos creator客户端相关(面向纯小白),第1张

先从客户端开始

因为pomelo本身并没有给出对cocos creator的支持,所以要自己写,创建如上图4个js文件

emitter.js

pomelo-client.js

protobuf.js

protocol.js

客户端初始化连接服务器

初次连接服务器

后续连接,init每次只需要换账户的时候调用

服务器相关

客户端初始化连接的是gate服,与之对应

初次与客户端连接

后续连接,客户端请求id可以直接从session获取

服务器推送,前面rpc调用的时候已经在game服的gameRemote里创建了channelService并把用户添加进去了

推送方法

3D 1.2打包后的application.js

截图中的几个相对地址,改为CDN上对应的地址即可

若是2.4版本打包,依然找寻图1中的assetOptions 来确定文件名(反正不是application.js就对了)

环境:

客户端:cocos creator + socket-io(2.1及以上)

服务器:nodejs + socked-io

问题1:

在生成微信开发者工具中编译报错如下:

WAGame.js:1 gameThirdScriptError Cannot read property 'Buffer' of undefined

TypeError: Cannot read property 'Buffer' of undefined  at Object.<anonymous>

原因:

查看源码,发现socket-io-client中使用了Buffer关键字,这个在微信中应该是没有的

解决办法

替换cocos creator提供的例子中的socket-io

问题2:

在替换了cocos creator中提供的socket-io后发现无法连接到服务器,并且服务器不断提示连接,断开,连接,断开。。。

原因:

因为socket-io相当于一个集合,里面包含了各种查询连接方式如websocket

解决办法:

一定要在连接时指明使用的传输方式:

let socket = io.connect("ws://localhost:29010", {transports:['websocket']}) 

问题3:

成功生成微信小游戏后,模拟器正常连接,真机调试正常连接,但真机关闭了调试模式无法连接

原因:

微信限制了域名的使用,调试模式下可以临时开启 开发环境不校验请求域名、TLS版本及HTTPS证书 选项,跳过服务器域名的校验。此时,在微信开发者工具中及手机开启调试模式时,不会进行服务器域名的校验。

解决办法:

详见https://developers.weixin.qq.com/minigame/dev/tutorial/ability/network.html


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/467533.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-05
下一篇2023-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存