diff --git a/internal/msggateway/message_handler.go b/internal/msggateway/message_handler.go index d931f7c3f..5430c8175 100644 --- a/internal/msggateway/message_handler.go +++ b/internal/msggateway/message_handler.go @@ -53,14 +53,15 @@ var _ MessageHandler = (*GrpcHandler)(nil) type GrpcHandler struct { msgRpcClient *rpcclient.MessageRpcClient - pushClient *rpcclient.PushClient + pushClient *rpcclient.PushRpcClient validate *validator.Validate } func NewGrpcHandler(validate *validator.Validate, client discoveryregistry.SvcDiscoveryRegistry) *GrpcHandler { msgRpcClient := rpcclient.NewMessageRpcClient(client) + pushRpcClient := rpcclient.NewPushRpcClient(client) return &GrpcHandler{msgRpcClient: &msgRpcClient, - pushClient: rpcclient.NewPushClient(client), validate: validate} + pushClient: &pushRpcClient, validate: validate} } func (g GrpcHandler) GetSeq(context context.Context, data Req) ([]byte, error) { diff --git a/pkg/rpcclient/push.go b/pkg/rpcclient/push.go index aae7479b4..ee4943d48 100644 --- a/pkg/rpcclient/push.go +++ b/pkg/rpcclient/push.go @@ -6,28 +6,33 @@ import ( "github.com/OpenIMSDK/Open-IM-Server/pkg/common/config" "github.com/OpenIMSDK/Open-IM-Server/pkg/discoveryregistry" "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/push" + "google.golang.org/grpc" ) type Push struct { + conn *grpc.ClientConn + Client push.PushMsgServiceClient + discov discoveryregistry.SvcDiscoveryRegistry } -func NewPushPush(client discoveryregistry.SvcDiscoveryRegistry) *PushClient { - return &PushClient{ - MetaClient: MetaClient{ - client: client, - rpcRegisterName: config.Config.RpcRegisterName.OpenImPushName, - }, - } -} - -func (p *PushClient) DelUserPushToken(ctx context.Context, req *push.DelUserPushTokenReq) (*push.DelUserPushTokenResp, error) { - cc, err := p.getConn(ctx) +func NewPush(discov discoveryregistry.SvcDiscoveryRegistry) *Push { + conn, err := discov.GetConn(context.Background(), config.Config.RpcRegisterName.OpenImMsgName) if err != nil { - return nil, err + panic(err) } - resp, err := push.NewPushMsgServiceClient(cc).DelUserPushToken(ctx, req) - if err != nil { - return nil, err + return &Push{ + discov: discov, + conn: conn, + Client: push.NewPushMsgServiceClient(conn), } - return resp, nil +} + +type PushRpcClient Push + +func NewPushRpcClient(discov discoveryregistry.SvcDiscoveryRegistry) PushRpcClient { + return PushRpcClient(*NewPush(discov)) +} + +func (p *PushRpcClient) DelUserPushToken(ctx context.Context, req *push.DelUserPushTokenReq) (*push.DelUserPushTokenResp, error) { + return p.Client.DelUserPushToken(ctx, req) }