コード例 #1
0
ファイル: pack.go プロジェクト: nopsky/gameserver
func PacketData(seqId uint64, data []byte) []byte {
	writer := packet.Writer()
	//size uint16
	writer.WriteU16(uint16(len(data)))
	//crc32 uint32
	crc32 := crc32.Checksum(data, crc32.IEEETable)

	writer.WriteU32(crc32)
	//seqid uint64
	writer.WriteU64(seqId)
	//data (uid + msgid + msgpack)
	writer.WriteRawBytes(data)

	return writer.Data()
}
コード例 #2
0
ファイル: main.go プロジェクト: nopsky/gameserver
func encode(uid uint64, msgid int32, reCode int32, _ack interface{}) []byte {
	var mh codec.MsgpackHandle
	var out []byte
	mh.EncodeOptions.StructToArray = true
	encode := codec.NewEncoderBytes(&out, &mh)
	encode.Encode(_ack)
	writer := packet.Writer()
	//计算包的长度
	writer.WriteU64(uid)
	writer.WriteS32(msgid)
	writer.WriteS32(reCode)
	writer.WriteRawBytes(out)

	return writer.Data()
}