优化服务器之间的底层连接方式

This commit is contained in:
flswld
2023-01-08 22:11:14 +08:00
parent 99408a745f
commit 6779ed8f20
21 changed files with 742 additions and 216 deletions

View File

@@ -21,7 +21,10 @@ import (
"hk4e/protocol/cmd"
)
const PacketFreqLimit = 1000
const (
PacketFreqLimit = 1000
PacketMaxLen = 343 * 1024
)
type KcpConnectManager struct {
discovery *rpc.DiscoveryClient
@@ -239,7 +242,8 @@ func (k *KcpConnectManager) recvHandle(session *Session) {
convId := conn.GetConv()
pktFreqLimitCounter := 0
pktFreqLimitTimer := time.Now().UnixNano()
recvBuf := make([]byte, conn.GetMaxPayloadLen())
recvBuf := make([]byte, PacketMaxLen)
dataBuf := make([]byte, 0, 1500)
for {
_ = conn.SetReadDeadline(time.Now().Add(time.Second * 15))
recvLen, err := conn.Read(recvBuf)
@@ -263,7 +267,7 @@ func (k *KcpConnectManager) recvHandle(session *Session) {
}
recvData := recvBuf[:recvLen]
kcpMsgList := make([]*KcpMsg, 0)
k.decodeBinToPayload(recvData, convId, &kcpMsgList, session.xorKey)
k.decodeBinToPayload(recvData, &dataBuf, convId, &kcpMsgList, session.xorKey)
for _, v := range kcpMsgList {
protoMsgList := k.protoDecode(v)
for _, vv := range protoMsgList {