package main import ( "context" pb "git.wanbits.io/joe/franklin/protos" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" "net" ) var ( g_grpc *grpc.Server ) type grpcServer struct { pb.UnimplementedRpcAgentServer } func (self *grpcServer) Kick(ctx context.Context, p *pb.KickUser) (*pb.RpcEcResp, error) { return nil, status.Errorf(codes.Unimplemented, "method Kick not implemented") } func (self *grpcServer) Offline(ctx context.Context, p *pb.RpcReqOffline) (*pb.RpcEcResp, error) { return nil, status.Errorf(codes.Unimplemented, "method Offline not implemented") } func (self *grpcServer) Highway(ctx context.Context, p *pb.PHighway) (*pb.RHighway, error) { return nil, status.Errorf(codes.Unimplemented, "method Highway not implemented") } func StratGRPC(addr string) error { listener, err := net.Listen("tcp", addr) if err != nil { return err } g_grpc = grpc.NewServer() pb.RegisterRpcAgentServer(g_grpc, &grpcServer{}) go func() { if err = g_grpc.Serve(listener); err != nil { panic(err) } }() return nil } func StopGRPC() { g_grpc.Stop() }