引言:
假如我们要建立的skynet服务器与客户端的连接方式为长连接,且选择了Google的Protobuf来定制我们的网络协议,那么,接下来我们要解决的问题就是:如何在skynet框架中使用socket+protobuf。
API
几个常用的skynet接口:
* 输出错误信息: skynet.error(...)* 获取本地服务句柄方式: skynet.localname(...)* 设置定时器方式: skynet.timeout(...)* skynet强制退出方式: skyname.abort()* 服务开始方式: skynet.start(...)* 服务注销方式: skynet.exit()* 发送原始文本消息方式: skynet.core.send(...)
protobuf在skynet中使用:
由于protobuf的lua版本的支持存在着部分缺陷,为了避免踩坑,这里我们直接使用云风博客中推荐的pbc动态proto解析库。
资源下载:
下载pbc:跟下载skynet源码一样,通过git将pbc的源码克隆到本地:
bogon:project linshuhe$ git clone https://github.com/cloudwu/pbc.gitCloning into 'pbc'...remote: Counting objects: 1156, done.remote: Total 1156 (delta 0), reused 0 (delta 0), pack-reused 1156Receiving objects: 100% (1156/1156), 302.95 KiB | 310.00 KiB/s, done.Resolving deltas: 100% (682/682), done.Checking connectivity... done.
资料领取直通车:大厂面试题锦集+视频教程
Linux服务器学习网站:C/C++Linux服务器开发/后台架构师
编译并合入项目:
项目编译:
可以在pbc根目录下运行make指令编译项目:
linsh@ubuntu:/application/pbc$ sudo makecd build && ar rc libpbc.a ../build/o/co