From edd357fe502a8d113e19af5fefd61dc6ad5efaea Mon Sep 17 00:00:00 2001 From: wish Date: Tue, 8 Oct 2024 20:42:42 +1100 Subject: [PATCH] concatenate packets during send --- server/channelserver/handlers_mercenary.go | 1 - server/channelserver/sys_session.go | 15 +++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/server/channelserver/handlers_mercenary.go b/server/channelserver/handlers_mercenary.go index 8f1f4f018..a033ad6b8 100644 --- a/server/channelserver/handlers_mercenary.go +++ b/server/channelserver/handlers_mercenary.go @@ -21,7 +21,6 @@ func handleMsgMhfLoadPartner(s *Session, p mhfpacket.MHFPacket) { data = make([]byte, 9) } doAckBufSucceed(s, pkt.AckHandle, data) - doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfSavePartner(s *Session, p mhfpacket.MHFPacket) { diff --git a/server/channelserver/sys_session.go b/server/channelserver/sys_session.go index ca9f5ff6c..eaef60e18 100644 --- a/server/channelserver/sys_session.go +++ b/server/channelserver/sys_session.go @@ -152,18 +152,21 @@ func (s *Session) QueueAck(ackHandle uint32, data []byte) { func (s *Session) sendLoop() { var pkt packet + var buffer []byte for { if s.closed { return } for len(s.sendPackets) > 0 { pkt = <-s.sendPackets - err := s.cryptConn.SendPacket(append(pkt.data, []byte{0x00, 0x10}...)) - if err != nil { - s.logger.Warn("Failed to send packet") - } + buffer = append(buffer, pkt.data...) } - time.Sleep(5 * time.Millisecond) + err := s.cryptConn.SendPacket(append(buffer, []byte{0x00, 0x10}...)) + if err != nil { + s.logger.Warn("Failed to send packet") + } + buffer = buffer[:0] + time.Sleep(100 * time.Millisecond) } } @@ -188,7 +191,7 @@ func (s *Session) recvLoop() { return } s.handlePacketGroup(pkt) - time.Sleep(5 * time.Millisecond) + time.Sleep(100 * time.Millisecond) } }