proto file
syntax = "proto3";
package apiService;
service apiService { rpc apiTrans(Request) returns (Response) {} }
message Request { string value = 1; }
message Response { string value = 1; }
|
source code
package main
import ( "context" "google.golang.org/grpc" "google.golang.org/grpc/reflection" "log" "net" pb "rpcServer/rpc_api" )
const ( port = ":52061" )
type server struct{}
func (s *server) ApiTrans(ctx context.Context, in *pb.Request) (*pb.Response, error) { log.Println("receive: ",in.Value) return &pb.Response{Value:in.Value},nil }
func RpcServe() { listen, err := net.Listen("tcp", port) if err != nil { log.Fatalf("failed to listen: %v", err) } s := grpc.NewServer() pb.RegisterApiServiceServer(s, &server{}) reflection.Register(s) if err := s.Serve(listen); err != nil { log.Fatalf("failed to serve: %v", err) } }
func main() { RpcServe() }
|