71 lines
1.2 KiB
Go
71 lines
1.2 KiB
Go
|
/*
|
||
|
* 版权所有 (c) 上海元泓软件科技有限公司 2023.
|
||
|
* 严禁通过任何媒介未经授权复制本文件.
|
||
|
*
|
||
|
* 作者:mic
|
||
|
* Email:funui@outlook.com
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* 版权所有 (c) 上海元泓软件科技有限公司 2022.
|
||
|
* 严禁通过任何媒介未经授权复制本文件.
|
||
|
*
|
||
|
* 作者:mic
|
||
|
* Email:funui@outlook.com
|
||
|
*/
|
||
|
|
||
|
package tcp
|
||
|
|
||
|
import (
|
||
|
"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
|
||
|
}
|
||
|
}
|