介绍
在和客户端通讯时,需要制订一套通讯协议。 skynet 并没有规定任何通讯协议,所以你可以自由选择。
sproto 是一套由 skynet 自身提供的协议,并没有特别推荐使用,只是一个选项。sproto 有一个独立项目存在 。同时也复制了一份在 skynet 的源码库中。
它类似 google protobuffers ,但设计的更简单,也更利于 lua 使用。同时还提供了一套简单的 rpc 方案。
以上内容来自 sproto
简单来说,sproto是云风为skynet定制的通讯协议,它只支持四种数据类型:
string
: 字符串binary
:二进制的字符串(它其实是string类型的子类)integer
:整数类型,最大长度为 signed 64bit,它可以是具有指定精度的定点数。boolean
:true或者false
使用起来其实也很简单,比如本项目的:
c2s.sproto
:
.package {
type 0 : integer
session 1 : integer
ud 2 : string
}
.User {
username 0 : string
password 1 : string
nickname 2 : string
}
ping 1 {
response {