websocket写入优化
This commit is contained in:
parent
2d055df276
commit
4b12211e85
14
main.go
14
main.go
|
@ -1,14 +0,0 @@
|
||||||
package main
|
|
||||||
|
|
||||||
import "github.com/kercylan98/minotaur/server"
|
|
||||||
|
|
||||||
// 无意义的测试main入口
|
|
||||||
func main() {
|
|
||||||
srv := server.New(server.NetworkWebsocket, server.WithMessageDiversion(3, 2))
|
|
||||||
srv.RegConnectionReceiveWebsocketPacketEvent(func(srv *server.Server, conn *server.Conn, packet []byte, messageType int) {
|
|
||||||
conn.Write(packet, messageType)
|
|
||||||
})
|
|
||||||
if err := srv.Run(":8999"); err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -177,7 +177,7 @@ func (slf *Conn) writeLoop() {
|
||||||
return &connPacket{}
|
return &connPacket{}
|
||||||
}, func(data *connPacket) {
|
}, func(data *connPacket) {
|
||||||
data.packet = nil
|
data.packet = nil
|
||||||
data.websocketMessageType = -1
|
data.websocketMessageType = 0
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
defer func() {
|
defer func() {
|
||||||
|
@ -209,7 +209,7 @@ func (slf *Conn) writeLoop() {
|
||||||
}
|
}
|
||||||
var err error
|
var err error
|
||||||
if slf.IsWebsocket() {
|
if slf.IsWebsocket() {
|
||||||
if data.websocketMessageType == -1 {
|
if data.websocketMessageType <= 0 {
|
||||||
data.websocketMessageType = slf.server.websocketWriteMessageType
|
data.websocketMessageType = slf.server.websocketWriteMessageType
|
||||||
}
|
}
|
||||||
err = slf.ws.WriteMessage(data.websocketMessageType, data.packet)
|
err = slf.ws.WriteMessage(data.websocketMessageType, data.packet)
|
||||||
|
|
|
@ -263,9 +263,9 @@ func (slf *Server) Run(addr string) error {
|
||||||
if err := ws.SetReadDeadline(time.Now().Add(time.Second * 30)); err != nil {
|
if err := ws.SetReadDeadline(time.Now().Add(time.Second * 30)); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
messageType, packet, err := ws.ReadMessage()
|
messageType, packet, readErr := ws.ReadMessage()
|
||||||
if err != nil {
|
if readErr != nil {
|
||||||
panic(err)
|
panic(readErr)
|
||||||
}
|
}
|
||||||
if len(slf.supportMessageTypes) > 0 && !slf.supportMessageTypes[messageType] {
|
if len(slf.supportMessageTypes) > 0 && !slf.supportMessageTypes[messageType] {
|
||||||
panic(ErrWebsocketIllegalMessageType)
|
panic(ErrWebsocketIllegalMessageType)
|
||||||
|
@ -383,6 +383,7 @@ func (slf *Server) Shutdown(err error) {
|
||||||
log.Error("Server", zap.Any("network", slf.network), zap.String("listen", slf.addr),
|
log.Error("Server", zap.Any("network", slf.network), zap.String("listen", slf.addr),
|
||||||
zap.String("action", "shutdown"), zap.String("state", "exception"), zap.Error(err))
|
zap.String("action", "shutdown"), zap.String("state", "exception"), zap.Error(err))
|
||||||
slf.closeChannel <- struct{}{}
|
slf.closeChannel <- struct{}{}
|
||||||
|
panic(err)
|
||||||
} else {
|
} else {
|
||||||
log.Info("Server", zap.Any("network", slf.network), zap.String("listen", slf.addr),
|
log.Info("Server", zap.Any("network", slf.network), zap.String("listen", slf.addr),
|
||||||
zap.String("action", "shutdown"), zap.String("state", "normal"))
|
zap.String("action", "shutdown"), zap.String("state", "normal"))
|
||||||
|
|
Loading…
Reference in New Issue