-
Notifications
You must be signed in to change notification settings - Fork 0
/
message.go
54 lines (46 loc) · 1.57 KB
/
message.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package rpc
import (
"context"
"time"
"github.com/alph00/tiktok-tiny/kitex_gen/message"
"github.com/alph00/tiktok-tiny/kitex_gen/message/messageservice"
"github.com/alph00/tiktok-tiny/pkg/consul"
"github.com/alph00/tiktok-tiny/pkg/viper"
"github.com/cloudwego/kitex/client"
"github.com/cloudwego/kitex/pkg/retry"
"github.com/cloudwego/kitex/pkg/rpcinfo"
)
var (
messageClient messageservice.Client
)
func init() {
resolverConfig := viper.Read("consul")
consuladdr := resolverConfig.GetString("host") + ":" + resolverConfig.GetString("port")
resolver, err := consul.NewConsulResolver(consuladdr)
if err != nil {
panic(err)
}
messageServiceConfig := viper.Read("service")
serviceName := messageServiceConfig.GetString("message.name")
c, err := messageservice.NewClient(
serviceName,
// client.WithMiddleware(middleware.CommonMiddleware),
// client.WithInstanceMW(middleware.ClientMiddleware),
client.WithMuxConnection(1),
client.WithRPCTimeout(30*time.Second),
client.WithConnectTimeout(30000*time.Millisecond),
client.WithFailureRetry(retry.NewFailurePolicy()),
client.WithResolver(resolver), // resolver
client.WithClientBasicInfo(&rpcinfo.EndpointBasicInfo{ServiceName: serviceName}),
)
if err != nil {
panic(err)
}
messageClient = c
}
func MessageAction(ctx context.Context, req *message.MessageActionRequest) (*message.MessageActionResponse, error) {
return messageClient.MessageAction(ctx, req)
}
func MessageChat(ctx context.Context, req *message.MessageChatRequest) (*message.MessageChatResponse, error) {
return messageClient.MessageChat(ctx, req)
}