feat 优化网络库

This commit is contained in:
2026-01-03 13:19:43 +08:00
parent a565692217
commit 470f642515
19 changed files with 180 additions and 126 deletions

View File

@@ -15,13 +15,14 @@ import (
// WSConn 实现ISocketConn接口
type WSConn struct {
gnet.Conn
buf bytes.Buffer
logger logging.Logger
isUpgrade bool
isClose bool
param map[string]interface{}
openTime int64
remoteAddr string
buf bytes.Buffer
logger logging.Logger
isUpgrade bool // 是否已经升级
upgradeResp []byte // 升级响应
isClose bool
param map[string]interface{}
openTime int64 // 开启连接的时间
remoteAddr string // 远程ID地址
wsMessageBuf
}
@@ -60,11 +61,7 @@ func (w *WSConn) readBytesBuf(c gnet.Conn) gnet.Action {
return gnet.None
}
func (w *WSConn) upgrade() (data []byte, ok bool, action gnet.Action) {
if w.isUpgrade {
ok = true
return
}
func (w *WSConn) upgrade() (data []byte, action gnet.Action) {
buf := &w.buf
tmpReader := bytes.NewReader(buf.Bytes())
oldLen := tmpReader.Len()
@@ -83,27 +80,24 @@ func (w *WSConn) upgrade() (data []byte, ok bool, action gnet.Action) {
}
buf.Next(skipN)
if w.logger != nil {
w.logger.Errorf("ws upgrade error", err.Error())
w.logger.Errorf("ws upgrade err: %v", err.Error())
}
action = gnet.Close
return
}
buf.Next(skipN)
if w.logger != nil {
w.logger.Infof("ws upgrade success conn upgrade websocket protocol!")
}
//if w.logger != nil {
// w.logger.Infof("ws upgrade success conn upgrade websocket protocol!")
//}
_ = tempWriter.Flush()
data = result.Bytes()
ok = true
w.isUpgrade = true
return
}
func (w *WSConn) readWsMessages() (messages []wsutil.Message, err error) {
in := &w.buf
//messages, err = wsutil.ReadClientMessage(in, messages)
//return
for {
if w.curHeader == nil {
if in.Len() < ws.MinHeaderSize { //头长度至少是2
@@ -126,13 +120,8 @@ func (w *WSConn) readWsMessages() (messages []wsutil.Message, err error) {
if err != nil {
return
}
//in.Next(skipN)
w.curHeader = &head
//err = ws.WriteHeader(&msgBuf.cachedBuf, head)
//if err != nil {
// return nil, err
//}
}
dataLen := (int)(w.curHeader.Length)
if dataLen > 0 {