增加服务退出时, finish hook支持
This commit is contained in:
parent
2101bda75c
commit
19cb3e3ddf
11
construct.go
11
construct.go
@ -60,7 +60,7 @@ var (
|
|||||||
// Author : go_developer@163.com<白茶清欢>
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
//
|
//
|
||||||
// Date : 6:49 下午 2021/3/27
|
// Date : 6:49 下午 2021/3/27
|
||||||
func NewWebsocketServe(wsInstanceList ...abstract.IWebsocket) error {
|
func NewWebsocketServe(finishHook func(), wsInstanceList ...abstract.IWebsocket) error {
|
||||||
if len(wsInstanceList) == 0 {
|
if len(wsInstanceList) == 0 {
|
||||||
return errors.WithStack(errors.New("register websocket server list is empty"))
|
return errors.WithStack(errors.New("register websocket server list is empty"))
|
||||||
}
|
}
|
||||||
@ -70,7 +70,7 @@ func NewWebsocketServe(wsInstanceList ...abstract.IWebsocket) error {
|
|||||||
for _, wsInstance := range wsInstanceList {
|
for _, wsInstance := range wsInstanceList {
|
||||||
initServer(wsInstance)
|
initServer(wsInstance)
|
||||||
}
|
}
|
||||||
run()
|
run(finishHook)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -321,7 +321,7 @@ func dispatchCommand(ctx *context.WSContext, data []byte) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 启动所有端口的监听
|
// 启动所有端口的监听
|
||||||
func run() {
|
func run(finishHook func()) {
|
||||||
for port, ginInstance := range ginRouterTable {
|
for port, ginInstance := range ginRouterTable {
|
||||||
go func(ginInstance *gin.Engine, port int) {
|
go func(ginInstance *gin.Engine, port int) {
|
||||||
if err := ginInstance.Run(fmt.Sprintf(":%d", port)); nil != err {
|
if err := ginInstance.Run(fmt.Sprintf(":%d", port)); nil != err {
|
||||||
@ -331,7 +331,10 @@ func run() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
<-sigChan
|
<-sigChan
|
||||||
// TODO : 增加后置hook
|
// 增加后置hook
|
||||||
|
if nil != finishHook {
|
||||||
|
finishHook()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stop 停止服务
|
// Stop 停止服务
|
||||||
|
@ -23,7 +23,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
websocket.NewWebsocketServe(&Example{})
|
_ = websocket.NewWebsocketServe(nil, &Example{})
|
||||||
}
|
}
|
||||||
|
|
||||||
type Example struct {
|
type Example struct {
|
||||||
@ -31,7 +31,7 @@ type Example struct {
|
|||||||
|
|
||||||
func (e Example) Connect(ctx *context.WSContext) error {
|
func (e Example) Connect(ctx *context.WSContext) error {
|
||||||
fmt.Println("建立连接成功")
|
fmt.Println("建立连接成功")
|
||||||
message.Response(ctx, map[string]interface{}{"say": "hello world!", "cid": ctx.ConnectionID})
|
_ = message.Response(ctx, map[string]interface{}{"say": "hello world!", "cid": ctx.ConnectionID})
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user