ref: 43913f6f4fe21031e659557c876c5164d9b3ca7a
server/grpc/metric-grpc-server.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 |
/** * Yats - yats * * This file is licensed under the Affero General Public License version 3 or * later. See the COPYING file. * * @author Paolo Lulli <kevwe.com> * @copyright Paolo Lulli 2024 */ package grpc import ( "context" "google.golang.org/grpc" "log" "net" "yats-server/proto" ) type server struct { proto.UnimplementedYatsGrpcServiceServer metrics map[string]*proto.Metric events map[string]*proto.Event } func (s *server) CreateMetric(ctx context.Context, req *proto.CreateMetricRequest) (*proto.CreateMetricResponse, error) { metric := req.GetMetric() s.metrics[metric.IdClient] = metric return &proto.CreateMetricResponse{Metric: metric}, nil } func (s *server) CreateEvent(ctx context.Context, req *proto.CreateEventRequest) (*proto.CreateEventResponse, error) { event := req.GetEvent() s.events[event.IdClient] = event return &proto.CreateEventResponse{Event: event}, nil } func RunGrpc(address string) { lis, err := net.Listen("tcp", address) if err != nil { log.Fatalf("failed to listen: %v", err) } s := grpc.NewServer() proto.RegisterYatsGrpcServiceServer(s, &server{metrics: make(map[string]*proto.Metric)}) log.Println("Server is running on port 50051") if err := s.Serve(lis); err != nil { log.Fatalf("failed to serve: %v", err) } } |