Last active
August 6, 2021 11:35
-
-
Save percybolmer/debcee67c9bf7e35740f7975614b9343 to your computer and use it in GitHub Desktop.
A regular GRPC example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"log" | |
"net" | |
"time" | |
pingpong "github.com/percybolmer/grpcexample/pingpong" | |
"google.golang.org/grpc" | |
"google.golang.org/grpc/credentials" | |
) | |
func main() { | |
// We Generate a TLS grpc API | |
apiserver, err := GenerateTLSApi("cert/server.crt", "cert/server.key") | |
if err != nil { | |
log.Fatal(err) | |
} | |
// Start listening on a TCP Port | |
lis, err := net.Listen("tcp", "127.0.0.1:9990") | |
if err != nil { | |
log.Fatal(err) | |
} | |
// We need to tell the code WHAT TO do on each request, ie. The business logic. | |
// In GRPC cases, the Server is acutally just an Interface | |
// So we need a struct which fulfills the server interface | |
// see server.go | |
s := &Server{} | |
// Register the API server as a PingPong Server | |
// The register function is a generated piece by protoc. | |
pingpong.RegisterPingPongServer(apiserver, s) | |
// Start serving | |
log.Fatal(apiserver.Serve(lis)) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment