From 439ef74853da11bcf5271d3c92ed7a286a3037f8 Mon Sep 17 00:00:00 2001 From: godotg Date: Thu, 15 Sep 2022 18:25:17 +0800 Subject: [PATCH] =?UTF-8?q?perf[golang]:=20go=E7=9A=84zfoo=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8=EF=BC=8C=E4=BD=BF=E7=94=A8atomic=E8=87=AA?= =?UTF-8?q?=E5=A2=9E=E4=BD=9C=E4=B8=BAuuid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- net/src/test/go/znet/codec.go | 24 +++++++++---------- net/src/test/go/znet/conn.go | 8 +++---- .../test/go/znet/{message.go => packet.go} | 24 +++++++++---------- net/src/test/go/znet/service.go | 8 +++---- net/src/test/go/znet/zne_test.go | 4 ++-- 5 files changed, 34 insertions(+), 34 deletions(-) rename net/src/test/go/znet/{message.go => packet.go} (64%) diff --git a/net/src/test/go/znet/codec.go b/net/src/test/go/znet/codec.go index f86cb2be..d15b3c79 100644 --- a/net/src/test/go/znet/codec.go +++ b/net/src/test/go/znet/codec.go @@ -17,15 +17,15 @@ import ( "encoding/binary" ) -// Encode from Message to []byte -func Encode(msg *Message) ([]byte, error) { +// Encode from Packet to []byte +func Encode(msg *Packet) ([]byte, error) { buffer := new(bytes.Buffer) - err := binary.Write(buffer, binary.LittleEndian, msg.msgSize) + err := binary.Write(buffer, binary.LittleEndian, msg.length) if err != nil { return nil, err } - err = binary.Write(buffer, binary.LittleEndian, msg.msgID) + err = binary.Write(buffer, binary.LittleEndian, msg.protocolId) if err != nil { return nil, err } @@ -36,29 +36,29 @@ func Encode(msg *Message) ([]byte, error) { return buffer.Bytes(), nil } -// Decode from []byte to Message -func Decode(data []byte) (*Message, error) { +// Decode from []byte to Packet +func Decode(data []byte) (*Packet, error) { bufReader := bytes.NewReader(data) dataSize := len(data) // 读取消息ID - var msgID int32 - err := binary.Read(bufReader, binary.LittleEndian, &msgID) + var protocolId int16 + err := binary.Read(bufReader, binary.LittleEndian, &protocolId) if err != nil { return nil, err } // 读取数据 - dataBufLength := dataSize - 4 - 4 + dataBufLength := dataSize - 2 - 4 dataBuf := make([]byte, dataBufLength) err = binary.Read(bufReader, binary.LittleEndian, &dataBuf) if err != nil { return nil, err } - message := &Message{} - message.msgSize = int32(dataSize) - message.msgID = msgID + message := &Packet{} + message.length = int32(dataSize) + message.protocolId = protocolId message.data = dataBuf return message, nil diff --git a/net/src/test/go/znet/conn.go b/net/src/test/go/znet/conn.go index c1c856e3..2a809275 100644 --- a/net/src/test/go/znet/conn.go +++ b/net/src/test/go/znet/conn.go @@ -29,7 +29,7 @@ type Conn struct { done chan error hbTimer *time.Timer name string - messageCh chan *Message + messageCh chan *Packet hbInterval time.Duration hbTimeout time.Duration } @@ -45,7 +45,7 @@ func NewConn(c net.Conn, hbInterval time.Duration, hbTimeout time.Duration) *Con rawConn: c, sendCh: make(chan []byte, 100), done: make(chan error), - messageCh: make(chan *Message, 100), + messageCh: make(chan *Packet, 100), hbInterval: hbInterval, hbTimeout: hbTimeout, } @@ -67,7 +67,7 @@ func (c *Conn) Close() { } // SendMessage send message -func (c *Conn) SendMessage(msg *Message) error { +func (c *Conn) SendMessage(msg *Packet) error { pkg, err := Encode(msg) if err != nil { return err @@ -156,7 +156,7 @@ func (c *Conn) readCoroutine(ctx context.Context) { continue } - if msg.msgID == MsgHeartbeat { + if msg.protocolId == MsgHeartbeat { continue } diff --git a/net/src/test/go/znet/message.go b/net/src/test/go/znet/packet.go similarity index 64% rename from net/src/test/go/znet/message.go rename to net/src/test/go/znet/packet.go index ef80c58d..bcd65e27 100644 --- a/net/src/test/go/znet/message.go +++ b/net/src/test/go/znet/packet.go @@ -15,24 +15,24 @@ import ( "fmt" ) -// Message struct -type Message struct { - msgSize int32 - msgID int32 - data []byte +// Packet struct +type Packet struct { + length int32 + protocolId int16 + data []byte } // NewMessage create a new message -func NewMessage(msgID int32, data []byte) *Message { - msg := &Message{ - msgSize: int32(len(data)) + 4 + 4, - msgID: msgID, - data: data, +func NewMessage(protocolId int16, data []byte) *Packet { + msg := &Packet{ + length: int32(len(data)) + 4 + 4, + protocolId: protocolId, + data: data, } return msg } -func (msg *Message) String() string { - return fmt.Sprintf("Size=%d ID=%d DataLen=%d", msg.msgSize, msg.msgID, len(msg.data)) +func (msg *Packet) String() string { + return fmt.Sprintf("Size=%d ID=%d DataLen=%d", msg.length, msg.protocolId, len(msg.data)) } diff --git a/net/src/test/go/znet/service.go b/net/src/test/go/znet/service.go index 8b1bf742..78b9a547 100644 --- a/net/src/test/go/znet/service.go +++ b/net/src/test/go/znet/service.go @@ -21,7 +21,7 @@ import ( // SocketService struct type SocketService struct { - onMessage func(*Session, *Message) + onMessage func(*Session, *Packet) onConnect func(*Session) onDisconnect func(*Session, error) sessions *sync.Map @@ -56,7 +56,7 @@ func NewSocketService(laddr string) (*SocketService, error) { } // RegMessageHandler register message handler -func (s *SocketService) RegMessageHandler(handler func(*Session, *Message)) { +func (s *SocketService) RegMessageHandler(handler func(*Session, *Packet)) { s.onMessage = handler } @@ -175,7 +175,7 @@ func (s *SocketService) GetConnsCount() int { } // Unicast Unicast with session ID -func (s *SocketService) Unicast(sid string, msg *Message) { +func (s *SocketService) Unicast(sid string, msg *Packet) { v, ok := s.sessions.Load(sid) if ok { session := v.(*Session) @@ -187,7 +187,7 @@ func (s *SocketService) Unicast(sid string, msg *Message) { } // Broadcast Broadcast to all connections -func (s *SocketService) Broadcast(msg *Message) { +func (s *SocketService) Broadcast(msg *Packet) { s.sessions.Range(func(k, v interface{}) bool { s := v.(*Session) if err := s.conn.SendMessage(msg); err != nil { diff --git a/net/src/test/go/znet/zne_test.go b/net/src/test/go/znet/zne_test.go index f0d37afe..d98a8af3 100644 --- a/net/src/test/go/znet/zne_test.go +++ b/net/src/test/go/znet/zne_test.go @@ -45,8 +45,8 @@ func TestService(t *testing.T) { ss.Serv() } -func HandleMessage(s *Session, msg *Message) { - fmt.Println("receive msgID:", msg) +func HandleMessage(s *Session, msg *Packet) { + fmt.Println("receive protocolId:", msg) fmt.Println("receive data:", string(msg.data)) }