parent
b55fdda1de
commit
6281e50f3e
|
@ -0,0 +1,9 @@
|
|||
package define
|
||||
|
||||
const (
|
||||
SYS_NET_ENV_START = 10000
|
||||
SYS_NET_ENV_BOOT uint16 = SYS_NET_ENV_START + iota
|
||||
SYS_NET_ENV_SHUTDOWN
|
||||
SYS_NET_ENV_OPEN
|
||||
SYS_NET_ENV_CLOSE
|
||||
)
|
|
@ -11,6 +11,7 @@ package tcpgnet
|
|||
import (
|
||||
"fmt"
|
||||
"git.yhrjkj.com/YuanHong/YHEchoPackage/YHProto"
|
||||
"git.yhrjkj.com/YuanHong/YHEchoPackage/define"
|
||||
|
||||
"github.com/panjf2000/gnet/v2"
|
||||
goPool "github.com/panjf2000/gnet/v2/pkg/pool/goroutine"
|
||||
|
@ -41,6 +42,10 @@ type GnetServer struct {
|
|||
|
||||
func (s *GnetServer) addRoutes(r featuredRoutes) {
|
||||
for _, route := range r.routes {
|
||||
if route.Command > define.SYS_NET_ENV_START {
|
||||
logx.Errorf("命令标识不能超过%d", define.SYS_NET_ENV_START)
|
||||
continue
|
||||
}
|
||||
s.handlers.Store(route.Command, route.Handler)
|
||||
}
|
||||
}
|
||||
|
@ -50,6 +55,15 @@ func (s *GnetServer) OnBoot(eng gnet.Engine) (action gnet.Action) {
|
|||
fmt.Sprintf("%s://%s", s.network, s.addr))
|
||||
s.eng = eng
|
||||
|
||||
if handler, ok := s.handlers.Load(define.SYS_NET_ENV_BOOT); ok {
|
||||
_ = s.workerPool.Submit(
|
||||
func() {
|
||||
h := handler.(HandlerFunc)
|
||||
h(nil, nil)
|
||||
})
|
||||
}
|
||||
//处理pkg
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -57,6 +71,13 @@ func (s *GnetServer) OnShutdown(eng gnet.Engine) {
|
|||
//关闭工作池
|
||||
logx.Infof("关闭服务 %s ",
|
||||
fmt.Sprintf("%s://%s", s.network, s.addr))
|
||||
if handler, ok := s.handlers.Load(define.SYS_NET_ENV_SHUTDOWN); ok {
|
||||
_ = s.workerPool.Submit(
|
||||
func() {
|
||||
h := handler.(HandlerFunc)
|
||||
h(nil, nil)
|
||||
})
|
||||
}
|
||||
s.workerPool.Release()
|
||||
}
|
||||
|
||||
|
@ -69,6 +90,14 @@ func (s *GnetServer) OnOpen(c gnet.Conn) (out []byte, action gnet.Action) {
|
|||
}
|
||||
logx.Infof("在线:%d,最高在线:%d", connected, atomic.LoadInt32(&s.maxConnected))
|
||||
|
||||
if handler, ok := s.handlers.Load(define.SYS_NET_ENV_OPEN); ok {
|
||||
_ = s.workerPool.Submit(
|
||||
func() {
|
||||
h := handler.(HandlerFunc)
|
||||
h(c, nil)
|
||||
})
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -78,6 +107,13 @@ func (s *GnetServer) OnClose(c gnet.Conn, err error) (action gnet.Action) {
|
|||
}
|
||||
connected := atomic.AddInt32(&s.connected, -1)
|
||||
logx.Infof("在线:%d,最高在线:%d", connected, atomic.LoadInt32(&s.maxConnected))
|
||||
if handler, ok := s.handlers.Load(define.SYS_NET_ENV_CLOSE); ok {
|
||||
_ = s.workerPool.Submit(
|
||||
func() {
|
||||
h := handler.(HandlerFunc)
|
||||
h(c, nil)
|
||||
})
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ package wsgnet
|
|||
import (
|
||||
"fmt"
|
||||
"git.yhrjkj.com/YuanHong/YHEchoPackage/YHProto"
|
||||
"git.yhrjkj.com/YuanHong/YHEchoPackage/define"
|
||||
|
||||
"github.com/gobwas/ws"
|
||||
"github.com/gobwas/ws/wsutil"
|
||||
|
@ -43,6 +44,10 @@ type GnetServer struct {
|
|||
|
||||
func (s *GnetServer) addRoutes(r featuredRoutes) {
|
||||
for _, route := range r.routes {
|
||||
if route.Command > define.SYS_NET_ENV_START {
|
||||
logx.Errorf("命令标识不能超过%d", define.SYS_NET_ENV_START)
|
||||
continue
|
||||
}
|
||||
s.handlers.Store(route.Command, route.Handler)
|
||||
}
|
||||
}
|
||||
|
@ -51,7 +56,13 @@ func (s *GnetServer) OnBoot(eng gnet.Engine) (action gnet.Action) {
|
|||
logx.Infof("服务启动成功 %s ",
|
||||
fmt.Sprintf("%s://%s", s.network, s.addr))
|
||||
s.eng = eng
|
||||
|
||||
if handler, ok := s.handlers.Load(define.SYS_NET_ENV_BOOT); ok {
|
||||
_ = s.workerPool.Submit(
|
||||
func() {
|
||||
h := handler.(HandlerFunc)
|
||||
h(nil, nil)
|
||||
})
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -59,6 +70,13 @@ func (s *GnetServer) OnShutdown(eng gnet.Engine) {
|
|||
//关闭工作池
|
||||
logx.Infof("关闭服务 %s ",
|
||||
fmt.Sprintf("%s://%s", s.network, s.addr))
|
||||
if handler, ok := s.handlers.Load(define.SYS_NET_ENV_SHUTDOWN); ok {
|
||||
_ = s.workerPool.Submit(
|
||||
func() {
|
||||
h := handler.(HandlerFunc)
|
||||
h(nil, nil)
|
||||
})
|
||||
}
|
||||
s.workerPool.Release()
|
||||
}
|
||||
|
||||
|
@ -70,7 +88,13 @@ func (s *GnetServer) OnOpen(c gnet.Conn) (out []byte, action gnet.Action) {
|
|||
atomic.SwapInt32(&s.maxConnected, connected)
|
||||
}
|
||||
logx.Infof("在线:%d,最高在线:%d", connected, atomic.LoadInt32(&s.maxConnected))
|
||||
|
||||
if handler, ok := s.handlers.Load(define.SYS_NET_ENV_OPEN); ok {
|
||||
_ = s.workerPool.Submit(
|
||||
func() {
|
||||
h := handler.(HandlerFunc)
|
||||
h(c, nil)
|
||||
})
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -80,6 +104,13 @@ func (s *GnetServer) OnClose(c gnet.Conn, err error) (action gnet.Action) {
|
|||
}
|
||||
connected := atomic.AddInt32(&s.connected, -1)
|
||||
logx.Infof("在线:%d,最高在线:%d", connected, atomic.LoadInt32(&s.maxConnected))
|
||||
if handler, ok := s.handlers.Load(define.SYS_NET_ENV_CLOSE); ok {
|
||||
_ = s.workerPool.Submit(
|
||||
func() {
|
||||
h := handler.(HandlerFunc)
|
||||
h(c, nil)
|
||||
})
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue