From a0a38793aa6790bea823b705800c908d26111999 Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Wed, 10 May 2023 16:17:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81GRPC=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- go.mod | 2 +- go.sum | 2 ++ server/errors.go | 1 + server/server.go | 9 ++++++++- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index f5cde8a..6005c88 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/go-playground/validator/v10 v10.11.2 // indirect github.com/go-resty/resty/v2 v2.7.0 // indirect github.com/goccy/go-json v0.10.0 // indirect - github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect github.com/gopherjs/gopherjs v1.17.2 // indirect github.com/jonboulle/clockwork v0.3.0 // indirect github.com/json-iterator/go v1.1.12 // indirect diff --git a/go.sum b/go.sum index 7d7662f..a10d244 100644 --- a/go.sum +++ b/go.sum @@ -49,6 +49,8 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= diff --git a/server/errors.go b/server/errors.go index 4002ed8..40eeafb 100644 --- a/server/errors.go +++ b/server/errors.go @@ -9,6 +9,7 @@ var ( ErrWebsocketMessageTypePacketAttrs = errors.New("MessageTypePacket must contain *Conn and []byte and int(MessageType)") ErrMessageTypeErrorAttrs = errors.New("MessageTypePacket must contain error and MessageErrorAction") ErrNetworkOnlySupportHttp = errors.New("the current network mode is not compatible with HttpRouter, only NetworkHttp is supported") + ErrNetworkOnlySupportGRPC = errors.New("the current network mode is not compatible with RegGrpcServer, only NetworkGRPC is supported") ErrNetworkIncompatibleHttp = errors.New("the current network mode is not compatible with NetworkHttp") ErrWebsocketMessageTypeException = errors.New("unknown message type, will not work") ErrNotWebsocketUseMessageType = errors.New("message type filtering only supports websocket and does not take effect") diff --git a/server/server.go b/server/server.go index 336129c..c6faf4f 100644 --- a/server/server.go +++ b/server/server.go @@ -296,7 +296,7 @@ func (slf *Server) Shutdown(err error) { slf.initMessageChannel = false } if slf.grpcServer != nil { - slf.grpcServer.Stop() + slf.grpcServer.GracefulStop() } if slf.httpServer != nil { ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second) @@ -315,6 +315,13 @@ func (slf *Server) Shutdown(err error) { } } +func (slf *Server) GRPCServer() *grpc.Server { + if slf.grpcServer == nil { + panic(ErrNetworkOnlySupportGRPC) + } + return slf.grpcServer +} + // HttpRouter 当网络类型为 NetworkHttp 时将被允许获取路由器进行路由注册,否则将会发生 panic func (slf *Server) HttpRouter() gin.IRouter { if slf.ginServer == nil {