首页 存档 技术 查看内容

如何正确实现Cocos2d-x和Skynet通信 本文解决的问题 Cocos2d-x集成pbc和lpack skynet ...

2018-3-30 13:00 |来自: 互联网 371 0

摘要: 本文作者是由简书ID:「一个过客」开发者友情提供,原文地址在此:http://www.jianshu.com/p/41eb7ec73df9 最近使用skynet作为服务器,开发前端使用Cocos2d-x Lua。由于前后端都是用Lua编写,在搭建双方的通信环 ...

本文作者是由简书ID:「一个过客」开发者友情提供,原文地址在此:http://www.jianshu.com/p/41eb7ec73df9




最近使用skynet作为服务器,开发前端使用Cocos2d-x Lua。由于前后端都是用Lua编写,在搭建双方的通信环节有一个步骤就是选择通信的协议,通用选择是protobuf socket的方式,但由于protobuf对Lua的支持问题,我们选择了pbc这个proto解析库。


本文解决的问题


前端Cocos2d-x Lua引擎,如何使用luasocket protobuf和skynet进行通信?


前端使用:luasocket pbc lpack
后端使用:socket pbc string.pack string.unpack


skynet在数据发送时使用的是string.pack()string.unpack()进行打包解包然后这两个函数是Lua5.3的。前端的Cocos是Lua5.1没有这个API,因此才有了lpack这个库。


pbc

github.com/cloudwu/pbc.git
lpack

github.com/LuaDist/lpack.git

skynet

github.com/cloudwu/skynet.git

定好协议并可通信的skynet服务器和cocos2d-x客户端

github.com/gameloses/cocos2dx_lua_skynet_client.git

gitclone

github.com/gameloses/skynet_pbc.git

Github

github.com/gameloses/cocos2dx_lua_skynet_client.git


接下来就是进行一个前后端的对接逻辑。


Cocos2d-x集成pbc和lpack


这是一个已经集成好的Cocos2d-x的例子,开源代码在github

下面开始详细的集成教程

集成pbc

  1. 编译pbc
    pbc下的src拷贝到编译目录。假设你得建一个pbc目录然后把src下的代码copy到pbc下进行编译。发现pbc的.c在VS中不能按C代码编译,而应该按C 编译,在所有.c的属性页中的“C / C =

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部