43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"net"
|
|
"time"
|
|
|
|
"google.golang.org/grpc"
|
|
|
|
pingpong "grpc_pingpong/github.com/occlum/demos/grpc_pingpong/pingpong"
|
|
)
|
|
|
|
type PingPongServer struct {
|
|
pingpong.UnimplementedPingPongServiceServer
|
|
}
|
|
|
|
func (s *PingPongServer) PingPong(ctx context.Context, in *pingpong.PingPongMesg) (*pingpong.PingPongMesg, error) {
|
|
currentTime := time.Now()
|
|
fmt.Printf("Receiving Ping: %s (at %s)\n", in.Ping, currentTime.Format("2006-01-02T15:04:05.999999999Z07:00"))
|
|
return &pingpong.PingPongMesg{Ping: in.Ping,
|
|
Pong: fmt.Sprintf("Greetings from Pong! Ping Echoed: %s", in.Ping),
|
|
Timestamp: currentTime.Format("2006-01-02T15:04:05.999999999Z07:00")}, nil
|
|
}
|
|
|
|
func main() {
|
|
fmt.Println("grpc_pingpong server is waiting for service requests ...")
|
|
|
|
conn, err := net.Listen("tcp", "localhost:8888")
|
|
if err != nil {
|
|
fmt.Printf("Failed to listen: %v\n", err)
|
|
}
|
|
|
|
grpcServer := grpc.NewServer()
|
|
|
|
pingpong.RegisterPingPongServiceServer(grpcServer, &PingPongServer{})
|
|
|
|
if err := grpcServer.Serve(conn); err != nil {
|
|
fmt.Printf("Failed to serve: %s\n", err)
|
|
}
|
|
}
|
|
|