Skip to content

Instantly share code, notes, and snippets.

@mrnim94
Last active March 5, 2022 16:33
Show Gist options
  • Save mrnim94/1374cf2975a7334c117d1a234ae83c5b to your computer and use it in GitHub Desktop.
Save mrnim94/1374cf2975a7334c117d1a234ae83c5b to your computer and use it in GitHub Desktop.
show code golang GRPC use SSL - Server
package main
import (
"calculator/calculatorpb"
"context"
"fmt"
"google.golang.org/grpc/credentials"
"io"
"log"
"math"
"net"
"os"
"time"
"google.golang.org/grpc"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/reflection"
"google.golang.org/grpc/status"
)
type server struct{}
// sum này lấy ở dòng 431 CalculatorServiceServer file calculator.pb.go
/**
Nếu bạn để ntn
func (*server) Sum(ctx context.Context, in *calculatorpb.SumRequest, opts ...grpc.CallOption)
thì dòng 39 sẽ bị lỗi calculatorpb.RegisterCalculatorServiceServer(s, &server{}) ở chỗ &server{}
*/
func (*server) Sum(ctx context.Context, req *calculatorpb.SumRequest) (*calculatorpb.SumResponse, error) {
log.Println("sum called ..")
resp := &calculatorpb.SumResponse{
Result: req.GetNum1() + req.GetNum2(),
}
return resp, nil
}
func init() {
os.Setenv("HOST_SERVER_NAME", "0.0.0.0")
os.Setenv("PORT_SERVER_NAME", "50069")
}
func main() {
//tạo 1 listener với port 50069
bindingGrpcPort := os.Getenv("HOST_SERVER_NAME") + ":" + os.Getenv("PORT_SERVER_NAME")
lis, err := net.Listen("tcp", bindingGrpcPort) // mở port server
if err != nil {
log.Fatalf("error while create listen %v", err)
}
//config ssl
certFile := "ssl/server.crt"
keyFile := "ssl/server.key"
creds, sslErr := credentials.NewServerTLSFromFile(certFile, keyFile)
if sslErr != nil {
log.Fatalf("create creds ssl err %v\n", sslErr)
return
}
opts := grpc.Creds(creds)
s := grpc.NewServer(opts)
fmt.Println("Server GRPC has been binding: " + bindingGrpcPort)
// grpc đã viết sẵn chỉ new lên thôi
//s := grpc.NewServer()
calculatorpb.RegisterCalculatorServiceServer(s, &server{})
reflection.Register(s)
fmt.Println("calculator is running ..")
err = s.Serve(lis)
if err != nil {
log.Fatalf("error while create listen %v", err)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment