/* * 版权所有 (c) 上海元泓软件科技有限公司 2022. * 严禁通过任何媒介未经授权复制本文件. * * 作者:mic * Email:funui@outlook.com */ package wsgnet import ( "fmt" "git.yhrjkj.com/YuanHong/YHEchoPackage/ws/internal" goPool "github.com/panjf2000/gnet/v2/pkg/pool/goroutine" "github.com/zeromicro/go-zero/core/logx" ) type engine struct { conf EchoConf routes featuredRoutes } func newEngine(c EchoConf) *engine { svr := &engine{ conf: c, } return svr } func (ng *engine) addRoutes(r featuredRoutes) { ng.routes = r } func (ng *engine) start() error { ss := &GnetServer{ workerPool: goPool.Default(), network: ng.conf.Network, addr: fmt.Sprintf("%s:%d", ng.conf.Host, ng.conf.Port), } ss.addRoutes(ng.routes) return internal.StartEcho(ss, ng.conf.Network, ng.conf.Host, ng.conf.Port) } func (ng *engine) stop() error { internal.StopEcho(ng.conf.Network, ng.conf.Host, ng.conf.Port) return logx.Close() }