init
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
package server_cli
|
||||
|
||||
import (
|
||||
"apiServer_service/proto"
|
||||
"apiServer_service/utils/loger"
|
||||
"apiServer_service/utils/nacos"
|
||||
"context"
|
||||
"errors"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/metadata"
|
||||
"os"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// 获取 apiServer 的地址
|
||||
func getApiServer() string {
|
||||
service, err := nacos.DiscoverService("apiServer")
|
||||
if err != nil {
|
||||
loger.Error("getApiServer error", err)
|
||||
return ""
|
||||
}
|
||||
return service.Ip + ":" + strconv.Itoa(int(service.Port))
|
||||
}
|
||||
|
||||
// 获取 grpc 客户端
|
||||
func getGrpcClient() (*proto.ServerVisitServiceClient, error) {
|
||||
serverUri := getApiServer()
|
||||
if serverUri == "" {
|
||||
loger.Error("获取服务器地址失败")
|
||||
return nil, errors.New("getApiServer error")
|
||||
}
|
||||
conn, err := grpc.NewClient(getApiServer(), grpc.WithInsecure())
|
||||
if err != nil {
|
||||
loger.Error("getGrpcClient error", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
c := proto.NewServerVisitServiceClient(conn)
|
||||
return &c, nil
|
||||
}
|
||||
|
||||
// getContext 创建带有 token 的上下文
|
||||
func getContext() context.Context { // 创建带有 token 的上下文
|
||||
token := os.Getenv("GRPC_TOKEN")
|
||||
md := metadata.Pairs("authorization", "Bearer "+token) // 设置 authorization 头
|
||||
ctx := metadata.NewOutgoingContext(context.Background(), md)
|
||||
return ctx
|
||||
}
|
||||
|
||||
// ReportVisit 演示方法 向服务器上报访问记录
|
||||
func ReportVisit(token, note, VisitIp, OS string, point, UserId int) error {
|
||||
client, err := getGrpcClient()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
recode, err := (*client).AddServerVisitRecode(getContext(), &proto.ServerVisitRequest{
|
||||
Note: note,
|
||||
VisitIp: VisitIp,
|
||||
UserAgent: OS,
|
||||
ServerOs: OS,
|
||||
Point: int64(point),
|
||||
Token: token,
|
||||
})
|
||||
if err != nil {
|
||||
loger.Error("ReportVisit error", err)
|
||||
return err
|
||||
}
|
||||
loger.Debug("ReportVisit", recode)
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user