From 1573e98d41533d7ea7cc741db04bd7907ce3da45 Mon Sep 17 00:00:00 2001 From: AlexStocks <alexstocks@foxmail.com> Date: Fri, 14 Jun 2019 22:20:07 +0800 Subject: [PATCH] Fix: alexstocks/getty issue 18 --- protocol/dubbo/readwriter.go | 11 +++++------ protocol/dubbo/server.go | 8 ++++++-- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/protocol/dubbo/readwriter.go b/protocol/dubbo/readwriter.go index 6d789ae13..529aa759a 100644 --- a/protocol/dubbo/readwriter.go +++ b/protocol/dubbo/readwriter.go @@ -24,7 +24,7 @@ import ( import ( "github.com/dubbogo/getty" - "github.com/dubbogo/hessian2" + hessian "github.com/dubbogo/hessian2" perrors "github.com/pkg/errors" ) import ( @@ -89,12 +89,11 @@ func (p *RpcClientPackageHandler) Write(ss getty.Session, pkg interface{}) error // RpcServerPackageHandler //////////////////////////////////////////// -type RpcServerPackageHandler struct { -} +var ( + rpcServerPkgHandler = &RpcServerPackageHandler{} +) -func NewRpcServerPackageHandler() *RpcServerPackageHandler { - return &RpcServerPackageHandler{} -} +type RpcServerPackageHandler struct{} func (p *RpcServerPackageHandler) Read(ss getty.Session, data []byte) (interface{}, int, error) { pkg := &DubboPackage{ diff --git a/protocol/dubbo/server.go b/protocol/dubbo/server.go index 80568c61b..8bed30f74 100644 --- a/protocol/dubbo/server.go +++ b/protocol/dubbo/server.go @@ -79,6 +79,8 @@ type Server struct { conf ServerConfig tcpServer getty.Server exporter protocol.Exporter + + rpcHandler *RpcServerHandler } func NewServer(exporter protocol.Exporter) *Server { @@ -88,6 +90,8 @@ func NewServer(exporter protocol.Exporter) *Server { conf: *srvConf, } + s.rpcHandler = NewRpcServerHandler(s.exporter, s.conf.SessionNumber, s.conf.sessionTimeout) + return s } @@ -116,8 +120,8 @@ func (s *Server) newSession(session getty.Session) error { session.SetName(conf.GettySessionParam.SessionName) session.SetMaxMsgLen(conf.GettySessionParam.MaxMsgLen) - session.SetPkgHandler(NewRpcServerPackageHandler()) - session.SetEventListener(NewRpcServerHandler(s.exporter, conf.SessionNumber, conf.sessionTimeout)) + session.SetPkgHandler(rpcServerPkgHandler) + session.SetEventListener(s.rpcHandler) session.SetRQLen(conf.GettySessionParam.PkgRQSize) session.SetWQLen(conf.GettySessionParam.PkgWQSize) session.SetReadTimeout(conf.GettySessionParam.tcpReadTimeout) -- GitLab