yao/server/process.go
2022-03-05 21:28:19 +08:00

57 lines
1.2 KiB
Go

package server
import (
"github.com/yaoapp/gou"
"github.com/yaoapp/kun/exception"
)
func init() {
gou.RegisterProcessHandler("xiang.server.Start", ProcessStart)
gou.RegisterProcessHandler("xiang.server.Connect", ProcessConnect)
}
// ProcessStart xiang.server.Start
func ProcessStart(process *gou.Process) interface{} {
process.ValidateArgNums(1)
name := process.ArgsString(0)
serv, has := gou.Sockets[name]
if !has {
exception.New("%s does not load", 400, name).Throw()
}
args := []interface{}{}
if process.NumOfArgs() > 1 {
args = process.Args[1:]
}
if serv.Mode != "server" {
exception.New("%s mode [%s] not server", 400, name, serv.Mode).Throw()
}
serv.Start(args...)
return nil
}
// ProcessConnect xiang.server.Connect
func ProcessConnect(process *gou.Process) interface{} {
process.ValidateArgNums(1)
name := process.ArgsString(0)
serv, has := gou.Sockets[name]
if !has {
exception.New("%s does not load", 400, name).Throw()
}
args := []interface{}{}
if process.NumOfArgs() > 1 {
args = process.Args[1:]
}
if serv.Mode != "client" {
exception.New("%s mode [%s] not server", 400, name, serv.Mode).Throw()
}
serv.Connect(args...)
return nil
}