2023-02-09 13:35:14 +08:00
|
|
|
/*
|
|
|
|
* 版权所有 (c) 上海元泓软件科技有限公司 2023.
|
|
|
|
* 严禁通过任何媒介未经授权复制本文件.
|
|
|
|
*
|
|
|
|
* 作者:mic
|
|
|
|
* Email:funui@outlook.com
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* 版权所有 (c) 上海元泓软件科技有限公司 2022.
|
|
|
|
* 严禁通过任何媒介未经授权复制本文件.
|
|
|
|
*
|
|
|
|
* 作者:mic
|
|
|
|
* Email:funui@outlook.com
|
|
|
|
*/
|
|
|
|
|
2023-02-09 16:03:51 +08:00
|
|
|
package tcpgnet
|
2023-02-09 13:35:14 +08:00
|
|
|
|
|
|
|
import (
|
2023-02-09 16:03:51 +08:00
|
|
|
"git.yhrjkj.com/YuanHong/YHEchoPackage/YHProto"
|
2023-02-09 13:35:14 +08:00
|
|
|
"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
|
|
|
|
}
|
|
|
|
}
|