/* * 版权所有 (c) 上海元泓软件科技有限公司 2023. * 严禁通过任何媒介未经授权复制本文件. * * 作者:mic * Email:funui@outlook.com */ /* * 版权所有 (c) 上海元泓软件科技有限公司 2022. * 严禁通过任何媒介未经授权复制本文件. * * 作者:mic * Email:funui@outlook.com */ package wsgnet import ( "git.yhrjkj.com/YuanHong/YHEchoPackage/YHProto" "log" ) // A EchoServer is a rpc server. type Server struct { echo *engine } func MustNewServer(c EchoConf) *Server { //设置协议信息 YHProto.SetEchoPkgMagic(c.Magic) YHProto.SetEchoPkgKey(c.Key) server, err := NewServer(c) if err != nil { log.Fatal(err) } return server } func NewServer(c EchoConf) (*Server, error) { server := &Server{ echo: newEngine(c), } return server, nil } // AddRoutes add given routes into the Server. func (s *Server) AddRoutes(rs []Route) { r := featuredRoutes{ routes: rs, } s.echo.addRoutes(r) } // AddRoute adds given route into the Server. func (s *Server) AddRoute(r Route) { s.AddRoutes([]Route{r}) } func (s *Server) Start() { err := s.echo.start() if err != nil { log.Fatal(err) } } func (s *Server) Stop() { err := s.echo.stop() if err != nil { return } }