Skip to content
This repository has been archived by the owner on Jul 17, 2021. It is now read-only.
/ pgrpc Public archive

Passive grpc means the grpc server connect to the client.

License

Notifications You must be signed in to change notification settings

wweir/pgrpc

Repository files navigation

pgrpc

Passive grpc means the grpc server connect to the client.

It is useful while grpc server hidding behind NATs or gateways.

Usage:

grpc server side

	s := grpc.NewServer()
	// register handler as usual

	ln, err := pgrpc.Listen("127.0.0.1:50052", "example_server")
	if err != nil {
		log.Fatalln(err)
	}

	if err := s.Serve(ln); err != nil {
		log.Fatalln(err)
	}

grpc client side

	if err := pgrpc.InitClient(":50052",
		pgrpc.WithGrpcDialOpt(grpc.WithInsecure())); err != nil {
		log.Fatalln(err)
	}

	// loop all connected grpc servers
	pgrpc.Each(func(id string, cc *grpc.ClientConn, err error) error {
		if err != nil {
			log.Println("connect to id: %s, addr: %s, fail:", id, cc.Target(), err)
			return err
		}

		// grpc actions as usual
	}

	// call the specified grpc server
	conn, err := pgrpc.Dial("example_server")
	if err != nil {
		log.Println("connect to id: %s, addr: %s, fail:", id, cc.Target(), err)
	}

	// grpc actions as usual

About

Passive grpc means the grpc server connect to the client.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages