1 Star 0 Fork 0

Wsage / go-framework

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
server_grpc.go 1.76 KB
一键复制 编辑 原始数据 按行查看 历史
王少奇 提交于 2021-09-01 11:30 . 新增 grpc的server
package rpcserver
import (
"fmt"
"gitee.com/scottq/go-framework/src/v1/log"
"google.golang.org/grpc"
"net"
)
type GRPCRegServerFunc = func(*grpc.Server)
type GRPCServer struct {
name string
listenAdd string
s *grpc.Server
rpcRegFunc GRPCRegServerFunc
srRegisterWay string
log.InvokeLog
}
func NewGRPCServer(name string, addr string, regFunc GRPCRegServerFunc) (*GRPCServer, error) {
server := &GRPCServer{
name: name,
listenAdd: addr,
rpcRegFunc: regFunc,
}
return server, nil
}
func (server *GRPCServer) Run() error {
return server.run()
}
func (server *GRPCServer) run() error {
lis, err := net.Listen("tcp", server.listenAdd)
if err != nil {
server.Fatal("rpc running at %s", server.listenAdd)
}
s := grpc.NewServer()
if server.rpcRegFunc != nil {
server.rpcRegFunc(s)
}
fmt.Printf("[%s]rpc running at %s\n", server.name, server.listenAdd)
if err := s.Serve(lis); err != nil {
server.Fatal("failed to serve: %v", err)
return err
}
return nil
}
func (server *GRPCServer) Name() string {
return server.name
}
func (server *GRPCServer) Stop() error {
if server.s == nil {
return nil
}
server.Info("[%s]rpc stop %s", server.name, server.listenAdd)
server.s.Stop()
return nil
}
//注册发现
//func (s *GRPCServer) registerDiscovery() error {
// var err error
// switch s.srRegisterWay {
// case "etcd":
// etcdAddr := ""
// rpcAddr := s.listenAdd
// if etcdAddr == "" {
// return fmt.Errorf("sr register addr is empty")
// }
// if rpcAddr == "" {
// rpcAddr, err = utils.GetLocalIP()
// if err != nil {
// return err
// }
// }
// sr := etcdv3.RegisterService(
// etcdAddr,
// s.AppName,
// rpcAddr+":"+s.RpcPort, 5)
// go sr.ListenLease()
// //defer sr.Close()
// default:
// }
// return nil
//}
Go
1
https://gitee.com/scottq/go-framework.git
git@gitee.com:scottq/go-framework.git
scottq
go-framework
go-framework
v1.1.45

搜索帮助