YHEchoPackage/ws/server.go

72 lines
1.2 KiB
Go

/*
* 版权所有 (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
}
}