支持控制台命令

This commit is contained in:
kercylan98 2023-05-23 15:03:08 +08:00
parent 2645a95c54
commit b96af6e973
1 changed files with 15 additions and 18 deletions

View File

@ -48,21 +48,7 @@ func (slf *event) RegConsoleCommandEvent(command string, handle ConsoleCommandEv
for { for {
var input string var input string
_, _ = fmt.Scanln(&input) _, _ = fmt.Scanln(&input)
handles, exist := slf.consoleCommandEventHandles[input] slf.OnConsoleCommandEvent(input)
if !exist {
switch input {
case "exit", "quit", "close", "shutdown", "EXIT", "QUIT", "CLOSE", "SHUTDOWN":
log.Info("Console", zap.String("Receive", input), zap.String("Action", "Shutdown"))
slf.Server.Shutdown(nil)
return
}
log.Warn("Server", zap.String("Command", "unregistered"))
} else {
for _, handle := range handles {
handle(slf.Server)
}
}
} }
}() }()
}) })
@ -82,11 +68,22 @@ func (slf *event) RegStartBeforeEvent(handle StartBeforeEventHandle) {
log.Info("Server", zap.String("RegEvent", runtimes.CurrentRunningFuncName()), zap.String("handle", reflect.TypeOf(handle).String())) log.Info("Server", zap.String("RegEvent", runtimes.CurrentRunningFuncName()), zap.String("handle", reflect.TypeOf(handle).String()))
} }
func (slf *event) OnStartBeforeEvent() { func (slf *event) OnStartBeforeEvent(command string) {
for _, handle := range slf.startBeforeEventHandles { handles, exist := slf.consoleCommandEventHandles[command]
if !exist {
switch command {
case "exit", "quit", "close", "shutdown", "EXIT", "QUIT", "CLOSE", "SHUTDOWN":
log.Info("Console", zap.String("Receive", command), zap.String("Action", "Shutdown"))
slf.Server.Shutdown(nil)
return
}
log.Warn("Server", zap.String("Command", "unregistered"))
} else {
for _, handle := range handles {
handle(slf.Server) handle(slf.Server)
} }
} }
}
// RegStartFinishEvent 在服务器启动完成时将立刻执行被注册的事件处理函数 // RegStartFinishEvent 在服务器启动完成时将立刻执行被注册的事件处理函数
func (slf *event) RegStartFinishEvent(handle StartFinishEventHandle) { func (slf *event) RegStartFinishEvent(handle StartFinishEventHandle) {