Cocos2dx-lua 与 skynet通讯

发表时间: 2019-09-26作者: 何景松 0 15

    Cocos2dx-lua 与 skynet通讯

    前言

    skynet提供一个loginservice,在登陆的时候会用到 crypt库,和 string.pack, string.unpack函数。因为coocs使用的是lua5.1 string 里面没有pack和unpack这两个函数。所以如果要用skynet提供的loginservice的话,cocos就必须提供这些方法。

    准备

    下载skynet, 支持 crypt

    git clone https://github.com/cloudwu/skynet.git

    下载lpack, 支持 string.pack, string.unpack

    git clone https://github.com/LuaDist/lpack.git

    添加lpack

    可以看看这篇文章,cocos2dx和skynet通信,不过这篇文章没有介绍如何使用skynet的loginservice,因为缺少crypt的支持。所以接下来就开始准备添加crypt。

    添加crypt

    在 cocos工程目录/frameworks/cocos2d-x/cocos/scripting/lua-bindings/manual下面添加crypt目录,把skynet目录/lualib-src下的lua-crypt.c和lsha1.c拷贝到新添加的crypt目录中,并新建lua-crypt.h和lsha1.h文件。

    1. lsha1.c修改的内容 image

    2. lua-crypt.c修改的内容 image image

    3. 添加lua函数注册 image

    4. 编译

    测试

    在cocos工程目录/src/cocos/init.lua添加 image 加入skynet的登陆测试文件,并做了些小修改,由于代码有点多,这里就不贴出来了。这里的全部修改内容都会放到github上。

    !!!本次测试只在win上面测试通过,在Android和Mac上没有进行测试。

    github地址