Async python client

This commit is contained in:
Eden Kirin
2023-03-23 00:09:07 +01:00
parent 1542bd98c2
commit e247bdc929
2 changed files with 62 additions and 39 deletions

View File

@ -31,21 +31,12 @@ type currentTimeResponse struct {
formatted_time string
}
func GetCurrentTime(timezone string) currentTimeResponse {
conn, err := grpc.Dial(
fmt.Sprintf("%s:%d", SERVE_CURRENTTIME_HOST, SERVE_CURRENTTIME_PORT),
grpc.WithTransportCredentials(insecure.NewCredentials()),
)
if err != nil {
log.Fatalf("did not connect: %v", err)
}
defer conn.Close()
c := pb_get_currenttime.NewServeCurrentTimeServiceClient(conn)
var serveCurrentTimeServiceClient pb_get_currenttime.ServeCurrentTimeServiceClient
// Contact the server and print out its response.
func GetCurrentTime(timezone string) currentTimeResponse {
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
defer cancel()
r, err := c.GetCurrentTime(
r, err := serveCurrentTimeServiceClient.GetCurrentTime(
ctx,
&pb_get_currenttime.GetCurrentTimeRequest{Timezone: timezone},
)
@ -53,14 +44,13 @@ func GetCurrentTime(timezone string) currentTimeResponse {
log.Fatalf("could not greet: %v", err)
}
result := currentTimeResponse{
return currentTimeResponse{
hours: r.Hours,
minutes: r.Minutes,
seconds: r.Seconds,
milliseconds: r.Milliseconds,
formatted_time: r.FormattedTime,
}
return result
}
func (s *grpc_server) GetHours(
@ -105,9 +95,23 @@ func serve() {
log.Fatalf("failed to listen: %v", err)
}
// create ServeSegments server
server := grpc.NewServer()
pb_serve_segments.RegisterServeSegmentsServer(server, &grpc_server{})
log.Printf("server listening at %v", lis.Addr())
// create connection to ServeCurrentTime server
getCurrentTimeConn, err := grpc.Dial(
fmt.Sprintf("%s:%d", SERVE_CURRENTTIME_HOST, SERVE_CURRENTTIME_PORT),
grpc.WithTransportCredentials(insecure.NewCredentials()),
)
if err != nil {
log.Fatalf("did not connect: %v", err)
}
defer getCurrentTimeConn.Close()
// create client
serveCurrentTimeServiceClient = pb_get_currenttime.NewServeCurrentTimeServiceClient(getCurrentTimeConn)
if err := server.Serve(lis); err != nil {
log.Fatalf("failed to serve: %v", err)
}