代码拉取完成,页面将自动刷新
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
//}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。