47 lines
962 B
Go
47 lines
962 B
Go
/*
|
|
* 版权所有 (c) 上海元泓软件科技有限公司 2022.
|
|
* 严禁通过任何媒介未经授权复制本文件.
|
|
*
|
|
* 作者:mic
|
|
* Email:funui@outlook.com
|
|
*/
|
|
|
|
package wsgnet
|
|
|
|
import (
|
|
"fmt"
|
|
goPool "github.com/panjf2000/gnet/v2/pkg/pool/goroutine"
|
|
"github.com/zeromicro/go-zero/core/logx"
|
|
"yh-core/common/sapi/ws/internal"
|
|
)
|
|
|
|
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()
|
|
}
|