grpc_server.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package main
  2. import (
  3. "context"
  4. pb "git.wanbits.io/joe/franklin/protos"
  5. "google.golang.org/grpc"
  6. "google.golang.org/grpc/codes"
  7. "google.golang.org/grpc/status"
  8. "net"
  9. )
  10. var (
  11. g_grpc *grpc.Server
  12. )
  13. type grpcServer struct {
  14. pb.UnimplementedRpcAgentServer
  15. }
  16. func (self *grpcServer) Kick(ctx context.Context, p *pb.KickUser) (*pb.RpcEcResp, error) {
  17. return nil, status.Errorf(codes.Unimplemented, "method Kick not implemented")
  18. }
  19. func (self *grpcServer) Offline(ctx context.Context, p *pb.RpcReqOffline) (*pb.RpcEcResp, error) {
  20. return nil, status.Errorf(codes.Unimplemented, "method Offline not implemented")
  21. }
  22. func (self *grpcServer) Highway(ctx context.Context, p *pb.PHighway) (*pb.RHighway, error) {
  23. return nil, status.Errorf(codes.Unimplemented, "method Highway not implemented")
  24. }
  25. func StratGRPC(addr string) error {
  26. listener, err := net.Listen("tcp", addr)
  27. if err != nil {
  28. return err
  29. }
  30. g_grpc = grpc.NewServer()
  31. pb.RegisterRpcAgentServer(g_grpc, &grpcServer{})
  32. go func() {
  33. if err = g_grpc.Serve(listener); err != nil {
  34. panic(err)
  35. }
  36. }()
  37. return nil
  38. }
  39. func StopGRPC() {
  40. g_grpc.Stop()
  41. }