Creator+微信小游戏(2):服务器远程加载资源(4M限制、socketio问题)

文章目录

    • 1、资源放哪里?
    • 2、Creator发布的问题
    • 3、微信开发工具的问题
    • 4、socket.io问题!
    • 5、手机预览黑屏

以下讲解以 cocos creator为例。笔者版本2.0.6.

1、资源放哪里?

小游戏打包超过4M太正常了。常规做法是把res目录(游戏资源)放到远程服务器,小游戏启动的时候自动去服务器下载资源。
如果要想正常发布你的小游戏,你必须把资源必须放在具有https域名的服务器里。。
所以你需要:
1、买个ECS服务器,供应商没限制;
2、买个域名,几十块钱一年也还行。
3、https认证。这个也有免费的。
4、域名备案。这个也不要钱,就是手续比较麻烦。
当然,如果你的小游戏只是自己的微信号预览调试,使用http也可以凑合下。

2、Creator发布的问题

发布的时候注意如下几个地方:
1、MD5 cache。点上这个以后,每次发布生成的资源名都会加上md5码,你可以理解为每次发布后文件名都变了,这是为了避开浏览器缓存资源。当然砸出的坑就是每次发布后你都要同步更新服务器资源
2、appid一定是你申请的小游戏id,而不是小程序id!否则微信开发工具无法生成game.js!(小程序对应app.js)
3、远程服务器地址就是你存放资源res文件夹的目录(别包括res)。
4、发布了以后,别急着打开微信开发工具!先去build目录删除res文件夹
5、删除以后再打开微信开发工具,看看是否能远程加载。现在进入下一个坑。
Creator+微信小游戏(2):服务器远程加载资源(4M限制、socketio问题)_第1张图片

3、微信开发工具的问题

我的微信开发工具版本如下:
在这里插入图片描述
下面开始填坑。
1、项目设置,我是如下设置,最重要的是勾上不校验合法域名!尤其是如果你没有https证书的情况!勾上以后用http、ip地址都可以预览。
2、基础库和creator某些第三方库之间有复杂的对应关系,这个我懒得研究了,总之你记住不要随便换creator版本就好!
3、有时候会莫名报一大堆错误,最好把build文件夹全部删掉重新用creator生成。
Creator+微信小游戏(2):服务器远程加载资源(4M限制、socketio问题)_第2张图片

4、socket.io问题!

上面说过,微信基础库和creator某些第三方库之间有复杂的对应关系!说的就是你,socket.io!下面告诉你如何爬坑!
1、客户端和服务器的socket.io版本要兼容!否则会出现一方收不到另一方发包的诡异bug!最好用官方demo里给的版本!
2、不同的调试环境,socket.io的加载方式是不一样的!主要搞清楚3个环境:
模拟器环境、web环境、手机(微信)环境:

if (cc.sys.isNative) {
    console.log('===========Native(模拟器)===========')
    window.io = SocketIO;
} else if (cc.sys.isMobile) {
    console.log('===========isMobile.===========')
    // 你写什么都没用!
} else {
    console.log('=========== web ===========')
    // 你什么都不用写!creator把socket.io作为插件加载了!
    // window.io = require('lib/socket-io.js');  
}
_socket = window.io.connect(serverUrl, opts);

是不是看懵逼了?然后你发布后用微信开发者打开,结果报错:
undefined is not an object (evaluating ‘window.io.connect’);at setTimeout callback function at io (src/project.js:1:1)
咋办?
3、手动打补丁!修改game.js中的配置,加入下图第10行的代码!
别放第一行!因为你的socket.io依赖于cc的!放前面会报不认识cc!
Creator+微信小游戏(2):服务器远程加载资源(4M限制、socketio问题)_第3张图片
你会问这种野路子修改方式正规吗?呵呵,看官方回复:
https://forum.cocos.org/t/socketio/64725
Creator+微信小游戏(2):服务器远程加载资源(4M限制、socketio问题)_第4张图片

5、手机预览黑屏

在微信开发者工具上加载成功,但是到了手机上预览黑屏咋办?
1、先点小游戏右上角三个点,打开控制台,看看加载第三方库是否正常!
2、如果是res加载失败,确定是否资源md5 cache问题!
3、微信公众号平台-开发-域名配置。看到没有,不支持ip地址,不支持http!把这里配置成你的https服务器域名即可。
Creator+微信小游戏(2):服务器远程加载资源(4M限制、socketio问题)_第5张图片

你可能感兴趣的:(游戏,Creator,微信小游戏,socketio)