因为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
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)