New file |
| | |
| | | package service |
| | | |
| | | import ( |
| | | "basic.com/pubsub/protomsg.git" |
| | | "context" |
| | | "errors" |
| | | "time" |
| | | "webserver/extend/logger" |
| | | |
| | | "google.golang.org/grpc" |
| | | ) |
| | | |
| | | const ( |
| | | address = "localhost:4009" |
| | | ) |
| | | func DoFDetectWithRpc(fdr *protomsg.FaceDetectRequest,t time.Duration) ([]*protomsg.ResultFaceDetect,error) { |
| | | conn,err := grpc.Dial(address, grpc.WithInsecure()) |
| | | if err !=nil { |
| | | logger.Debug("grpc dial err:",err) |
| | | } |
| | | defer conn.Close() |
| | | c := protomsg.NewFaceDetectClient(conn) |
| | | |
| | | ctx,cancel := context.WithTimeout(context.Background(), t) |
| | | defer cancel() |
| | | faces,err := c.FaceDetect(ctx,fdr) |
| | | if err !=nil { |
| | | logger.Debug("rpc call err:",err) |
| | | return nil,err |
| | | } |
| | | if faces !=nil { |
| | | return faces.Faces,nil |
| | | } |
| | | return nil,errors.New("no face detected") |
| | | } |