package protocol import ( "encoding/hex" "fmt" "testing" ) func TestPacker(t *testing.T) { p := NewNNetPacker() body := []byte("") header := Header{ PacketType: Handshake, Length: uint32(len(body)), MessageHeader: MessageHeader{ MsgType: Request, ID: 1, Route: "", compressed: false, }, } pack, err := p.Pack(header, body) if err != nil { return } fmt.Println(hex.EncodeToString(pack)) // handshake ack body = []byte("") header = Header{ PacketType: HandshakeAck, Length: uint32(len(body)), MessageHeader: MessageHeader{ MsgType: Response, ID: 1, Route: "", compressed: false, }, } pack, err = p.Pack(header, body) if err != nil { return } fmt.Println(hex.EncodeToString(pack)) // data body = []byte("123") header = Header{ PacketType: Data, Length: uint32(len(body)), MessageHeader: MessageHeader{ MsgType: Request, ID: 2, Route: "", compressed: false, }, } pack, err = p.Pack(header, body) if err != nil { return } fmt.Println(hex.EncodeToString(pack)) // data -> route: test -> handler // data body = []byte("ni hao") header = Header{ PacketType: Data, Length: uint32(len(body)), MessageHeader: MessageHeader{ MsgType: Request, ID: 3, Route: "test", compressed: false, }, } pack, err = p.Pack(header, body) if err != nil { return } fmt.Println(hex.EncodeToString(pack)) } func TestUnPack(t *testing.T) { data := []byte{0x04, 0x00, 0x00, 0x23, 0x04, 0x03, 0xE6, 0x9C, 0x8D, 0xE5, 0x8A, 0xA1, 0xE5, 0x99, 0xA8, 0xE6, 0x8E, 0xA5, 0xE6, 0x94, 0xB6, 0xE5, 0x88, 0xB0, 0xE6, 0x95, 0xB0, 0xE6, 0x8D, 0xAE, 0xE4, 0xB8, 0xBA, 0x3A, 0x20, 0x6E, 0x69, 0x20, 0x68, 0x61, 0x6F} p := NewNNetPacker() unPacked, err := p.Unpack(data) if err != nil { panic(err) } fmt.Println(unPacked) }