Last active
March 5, 2022 16:33
-
-
Save mrnim94/1374cf2975a7334c117d1a234ae83c5b to your computer and use it in GitHub Desktop.
show code golang GRPC use SSL - Server
This file contains hidden or 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 ( | |
"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