package apiproto import ( context "context" "go.uber.org/zap" grpc "google.golang.org/grpc" "joylink.club/bj-rtsts-server/config" "joylink.club/bj-rtsts-server/dto" ) // Centrifugo 实时消息传递客户端 var client CentrifugoApiClient // Centrifugo 客户端初始化 func InitClient() { conn, err := grpc.Dial(config.Config.Messaging.Centrifugo.Address, grpc.WithInsecure()) if err != nil { panic(dto.ErrorDto{Code: dto.DataOperationError, Message: err.Error()}) } client = NewCentrifugoApiClient(conn) } // 返回 Centrifugo 客户端 func Cli() CentrifugoApiClient { return client } // 发布消息 func PublishMsg(channalName string, data []byte) { if len(data) == 0 { return } resp, err := client.Publish(context.Background(), &PublishRequest{ Channel: channalName, Data: data, }) if err != nil { zap.S().Errorf("Transport level error: %v \n", err) } else { if resp.GetError() != nil { respError := resp.GetError() zap.S().Errorf("Publish msg[%s] error %d(%s)\n", channalName, respError.Code, respError.Message) } } }