feat 优化网络库
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user