17年初因为我们的德州(cocos2dx-lua)在印尼反应还不错。后面决定要上facebook,为了最大程度的重用代码,当时选择了cocos2dx-js来开发。
还做了一个工具将lua代码中的一些关键字和语法转为js 譬如lua中的self转为js中的this,诸如此类。最后把用到的ui文件导出为.json格式,前端算是比较容易的解决了各种问题。
服务器方面也比较轻松。无非就是wss转tcp的问题。这个问题当时用的是nginx做了反向代理。把wss转为ws,然后连接到skynet。还有一个问题就是sproto库的问题,使用skynet铁定要使用sproto这样才可以使用提供的rpc远程调用方案。
问题来了,sproto并不提供js版本,当时在github中找了,有一个sproto-js库,但是这个sproto-js问题太多了,没办法只能自己写。前前后后花了2~3天时间才写好,主要是对js不是特别的熟悉。后面项目内测通过了,很遗憾的是还没正式上线公司就出现比较大的问题。这个项目也就搁置了。
刚好上个月公司准备开发微信小游戏,一方面吐槽creator的各种不便一方面庆幸之前做过这些事情,可以省去不少时间,今天在cocos论坛看到有人在卖sproto-js的插件,我就想把之前写的sproto-js放出来给需要的朋友使用。
地址:
https://github.com/simonxlg/sproto-js
因为是从原先代码弄出来,使用test可能有些问题。不过对熟悉skynet sproto 的用户不会构成困扰。
里面包含把协议文件转为二进制文件给js使用。(其实就是用的官方的sprotoparser.lua修改的)
其实这个库无非就是用js把云风的sproto.c重写一遍,然后再写几个为rpc调用配套使用的函数而已。
用这个sproto-js就可以使用js和skynet进行很典型的开发。