项目记录27--unity-tolua框架 网络端+protobuf
来源:互联网 发布:微信站街营销软件 编辑:程序博客网 时间:2024/04/27 22:36
放假两天一直在搞lua protobuf ,之前运行tolua的例子失败了,回过头来看并不是例子的问题,而是自己没注意到些问题。顺便将网络部分给调节通,服务器还是使用熟悉点的erlang来,把之前的字节流改成protobuf,包头还是使用之前的定义,加密之类的没变化,就是数据部分变化就好。废话不多说
(1).先按照protobuf-2.5.0
https://github.com/REALDROOPY/protobuf-2.5.0
1去到protobuf目录编译protobuf ./configure—>make—>make install—>进入protobuf下的python目录输入python setup.py build—>python setup.py install
2.最后生成protoc在/user/local/bin下,查看下有没有protoc
(2).下载protoc-gen-lua
https://github.com/topameng/protoc-gen-lua
设置protoc-gen-lua的路径到Path
(3).到例子目录下测试生成protoc --lua_out=./ person.proto 生成一个person_pb.lua就是需要的lua文件
()运行tolua里面protobuf的例子。
luaException: [string "protobuf/protobuf.lua"]:31: module 'pb' not found:
no field package.preload['pb’]
回想以前做coco2dx的时候就用过导出lua接口,就遇到过没有在c文件里面写入接口,会不会是这个问题?,查看luaDLL.cs
[DllImport(LUADLL, CallingConvention = CallingConvention.Cdecl)]
public static extern int luaopen_pb(IntPtr L);
发现这个接口是有导出的,所以很大的问题就是没有加载"pb"这个库
_luaState.OpenLibs(LuaDLL.luaopen_pb);
还要注意就是必须是同个luaState这个库才能使用上,所以建议实现一个统一的luaManager.cs来管理以后的对lua的调用,里面封装加载DLL,callFunc等对lua的调用方法。
好了,到这里面客户端的环境就搞好了。
(1).先按照protobuf-2.5.0
https://github.com/REALDROOPY/protobuf-2.5.0
1去到protobuf目录编译protobuf ./configure—>make—>make install—>进入protobuf下的python目录输入python setup.py build—>python setup.py install
2.最后生成protoc在/user/local/bin下,查看下有没有protoc
(2).下载protoc-gen-lua
https://github.com/topameng/protoc-gen-lua
设置protoc-gen-lua的路径到Path
(3).到例子目录下测试生成protoc --lua_out=./ person.proto 生成一个person_pb.lua就是需要的lua文件
()运行tolua里面protobuf的例子。
luaException: [string "protobuf/protobuf.lua"]:31: module 'pb' not found:
no field package.preload['pb’]
回想以前做coco2dx的时候就用过导出lua接口,就遇到过没有在c文件里面写入接口,会不会是这个问题?,查看luaDLL.cs
[DllImport(LUADLL, CallingConvention = CallingConvention.Cdecl)]
public static extern int luaopen_pb(IntPtr L);
发现这个接口是有导出的,所以很大的问题就是没有加载"pb"这个库
_luaState.OpenLibs(LuaDLL.luaopen_pb);
还要注意就是必须是同个luaState这个库才能使用上,所以建议实现一个统一的luaManager.cs来管理以后的对lua的调用,里面封装加载DLL,callFunc等对lua的调用方法。
好了,到这里面客户端的环境就搞好了。
服务端就免了这不是重点,有兴趣的去下载erlang_protobuf吧,也很容易就是到导出pb文件使用。
看看实现吧!!!!
在客户端c#边先要加载库!!!
//加载库
public void InitLuaLibrary()
{
_luaState.OpenLibs(LuaDLL.luaopen_pb);
}
客户端代码直接截图吧,懒了哈哈!!!!
服务端 :------------------------------------------------------------------------------
效果呢?????---------------------------------------------------别急看吧!!!
OK-------!!到这里网络部分框架也搞定了,调通了,方法也简化了调用,只需要protoid , pb_data,callBack 就OK,里面的细节不需要暴露出来!!!!!!!!
0 0
- 项目记录27--unity-tolua框架 网络端+protobuf
- 项目记录23--unity-tolua框架MediatorManager
- 项目记录24--unity-tolua框架 View01---UIBase.lua
- 项目记录25--unity-tolua框架 View02---BasePanel.lua
- 项目记录26--unity-tolua框架 View03-UIManager.lua
- 项目记录28--unity-tolua框架 lua使用协程
- 项目记录29--unity-tolua框架 c#导出定时器lua
- 项目记录30--unity-tolua框架 回顾之前Dotween导入
- 项目记录22-- tolua基于lua框架事件派发
- 项目记录34--tolua 框架 场景管理BaseScene
- 项目记录35--tolua 框架 场景管理SceneManager
- Unity使用protobuf-net实现的网络框架
- [Unity 网络]Unity Protobuf使用
- 项目记录33--tolua 框架 回顾架构和重构事件派发LNotice
- 项目记录36--tolua 框架真机成功热跟新搞定 + 简单池子PrefabsPool.lua
- 项目记录38--tolua 股市网络爬虫软件解析json,html
- 《Unity 3D游戏客户端基础框架》tolua 框架接入
- [Unity热更新]tolua# & LuaFramework(六):网络通信
- codeforces Good Bye 2015 E. New Year and Three Musketeers
- 服务端(JAVA Servlet)+客户端(Delphi xe8)三层开发
- 欢迎使用CSDN-markdown编辑器
- Android NDK开发“Hello World NDK”
- AlphaGo对战李世石谁能赢?两万字长文深挖围棋AI技术(二)
- 项目记录27--unity-tolua框架 网络端+protobuf
- 输出单向链表中倒数第k个结点
- AlphaGo对战李世石谁能赢?两万字长文深挖围棋AI技术(一)
- [LeetCode]70. Climbing Stairs
- INFORMIX 11.7 软件安装配置详细解释
- 2016.03.08
- LRU缓存实现(Java)
- regex_search()和getline(cin,str)函数,以及对其中正则表达式的解释
- 使用AccessibilityService实现微信自动抢红包