一 说明
该平台使用go语言, 基于开源框架pitayagames开发的一套分布式休闲游戏服务器
对客户端提供http,websocket接口,交互协议支持json,protobuf
二 服务器拓扑图
三 测试环境接入地址
gate地址: ws://101.37.163.172:9500
login地址: http://101.37.163.172:9000
四 websocket客户端接入说明
- 客户端在建立websocket连接后第一个包需发送ack包(兼任pitaya框架),再发送业务包。
- 数据包分为三种类型:ack包,data包,heart包,
- data包说明
data[0] = 0x04 固定填充0x04 代表data包
data[1: 4] = IntToBytes(DataLength) 3个字节 填充数据包长度(int转byte)
data[4] =客户端上行是notify消息固定填0x03 服务端下行是push消息固定填0x07
data[5] = byte((cmd>>8)&0xFF)
data[6] = byte(cmd&0xFF)
data[7 :N ] = pb_buff pb包序列化产生的buff ,pb_len为序列化产生的buff长度
注: cmd为主码
DataLength 为 data包第四个字节到末尾的长度
pb_buff 使用message Req 序列化产生
IntToBytes 算法如下
func IntToBytes(n int) []byte {
buf := make([]byte, 3)
buf[0] = byte((n >> 16) & 0xFF)
buf[1] = byte((n >> 8) & 0xFF)
buf[2] = byte(n & 0xFF)
return buf
}
- ack包说明
data[0] = 0x02 第一个字节填充0x02 代表ack包
data[1:4] = 0x00 后三个字节填0
- heart包说明
data[0] = 0x03 第一个字节填充0x03 代表心跳包
data[1:4] = 0x00 后三个字节填0
- kick包说明
data[0] = 0x05 第一个字节填充0x05 代表被踢出
data[1:4] = 0x00 后三个字节填0