diff --git a/cmd/socket.go b/cmd/socket.go index 563c63bc..c4ffd400 100644 --- a/cmd/socket.go +++ b/cmd/socket.go @@ -78,12 +78,27 @@ var socketCmd = &cobra.Command{ return } + host := socket.Host + port := socket.Port + argsLen := len(pargs) + if argsLen > 0 { + if inputHost, ok := pargs[0].(string); ok { + host = inputHost + } + } + + if argsLen > 1 { + if inputPort, ok := pargs[1].(string); ok { + port = inputPort + } + } + fmt.Println(color.WhiteString("\n---------------------------------")) fmt.Println(color.WhiteString(socket.Name)) fmt.Println(color.WhiteString("---------------------------------")) fmt.Println(color.GreenString("Mode: %s", socket.Mode)) - fmt.Println(color.GreenString("Host: %s://%s", socket.Protocol, socket.Host)) - fmt.Println(color.GreenString("Port: %s", socket.Port)) + fmt.Println(color.GreenString("Host: %s://%s", socket.Protocol, host)) + fmt.Println(color.GreenString("Port: %s", port)) fmt.Println(color.WhiteString("--------------------------------------")) err := socket.Open(pargs...) if err != nil { diff --git a/cmd/start.go b/cmd/start.go index 052164a7..117e07ac 100644 --- a/cmd/start.go +++ b/cmd/start.go @@ -95,23 +95,6 @@ var startCmd = &cobra.Command{ service.Watch(config.Conf) } - // with the alpha features - if startAlpha { - for _, sock := range gou.Sockets { - fmt.Println(color.WhiteString("\n---------------------------------")) - fmt.Println(color.WhiteString(sock.Name)) - fmt.Println(color.WhiteString("---------------------------------")) - fmt.Println(color.GreenString("Mode: %s", sock.Mode)) - fmt.Println(color.GreenString("Host: %s://%s", sock.Protocol, sock.Host)) - fmt.Println(color.GreenString("Port: %s\n\n", sock.Port)) - if sock.Mode == "server" { - go sock.Start() - } else if sock.Mode == "client" { - go sock.Open() - } - } - } - fmt.Println(color.GreenString(L("✨LISTENING✨"))) service.Start() }, diff --git a/engine/load.go b/engine/load.go index a51907c0..4f11518b 100644 --- a/engine/load.go +++ b/engine/load.go @@ -20,11 +20,10 @@ import ( "github.com/yaoapp/yao/plugin" "github.com/yaoapp/yao/query" "github.com/yaoapp/yao/script" - "github.com/yaoapp/yao/server" "github.com/yaoapp/yao/share" + "github.com/yaoapp/yao/socket" "github.com/yaoapp/yao/store" "github.com/yaoapp/yao/table" - "github.com/yaoapp/yao/workflow" ) // Load 根据配置加载 API, FLow, Model, Plugin @@ -103,14 +102,19 @@ func Load(cfg config.Config) (err error) { page.Load(cfg) // 加载页面 page 忽略错误 importer.Load(cfg) // 加载数据导入 imports - workflow.Load(cfg) // 加载工作流 workflow + + // workflow.Load(cfg) // 加载工作流 workflow err = api.Load(cfg) // 加载业务接口 API if err != nil { log.Debug(err.Error()) } - server.Load(cfg) // 加载服务 + err = socket.Load(cfg) // Load sockets + if err != nil { + log.Debug(err.Error()) + } + return nil } diff --git a/server/process.go b/server/process.go deleted file mode 100644 index d0b02b8b..00000000 --- a/server/process.go +++ /dev/null @@ -1,63 +0,0 @@ -package server - -import ( - "github.com/yaoapp/gou" - "github.com/yaoapp/kun/exception" -) - -func init() { - // gou.RegisterProcessHandler("xiang.server.Start", ProcessStart) - // gou.RegisterProcessHandler("xiang.server.Open", ProcessOpen) -} - -// 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 -} - -// ProcessOpen xiang.server.Open -// func ProcessOpen(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() -// return nil -// } - -// args := []interface{}{} -// if process.NumOfArgs() > 1 { -// args = process.Args[1:] -// } - -// if serv.Mode != "client" { -// exception.New("%s mode [%s] should be client", 400, name, serv.Mode).Throw() -// return nil -// } - -// err := serv.Open(args...) -// if err != nil { -// exception.New("%s: %s", 500, name, err.Error()).Throw() -// } - -// return nil -// } diff --git a/server/socket.go b/socket/socket.go similarity index 83% rename from server/socket.go rename to socket/socket.go index 48b07ea0..7a7e4723 100644 --- a/server/socket.go +++ b/socket/socket.go @@ -1,4 +1,4 @@ -package server +package socket import ( "fmt" @@ -11,9 +11,9 @@ import ( ) // Load 加载API -func Load(cfg config.Config) { - var root = filepath.Join(cfg.Root, "servers") - LoadFrom(root, "") +func Load(cfg config.Config) error { + var root = filepath.Join(cfg.Root, "sockets") + return LoadFrom(root, "") } // LoadFrom 从特定目录加载 diff --git a/server/socket_test.go b/socket/socket_test.go similarity index 50% rename from server/socket_test.go rename to socket/socket_test.go index ecb73c82..1f41a566 100644 --- a/server/socket_test.go +++ b/socket/socket_test.go @@ -1,4 +1,4 @@ -package server +package socket import ( "testing" @@ -14,20 +14,6 @@ func TestLoad(t *testing.T) { check(t) } -func TestProcessStart(t *testing.T) { - Load(config.Conf) - // assert.NotPanics(t, func() { - // gou.NewProcess("xiang.server.Start", "rfid").Run() - // }) -} - -// func TestProcessConnect(t *testing.T) { -// Load(config.Conf) -// // assert.NotPanics(t, func() { -// // gou.NewProcess("xiang.server.Connect", "rfid_client").Run() -// // }) -// } - func check(t *testing.T) { keys := []string{} for key := range gou.Sockets { diff --git a/tests/servers/rfid.sock.json b/tests/sockets/rfid.sock.json similarity index 100% rename from tests/servers/rfid.sock.json rename to tests/sockets/rfid.sock.json diff --git a/tests/servers/rfid_client.sock.json b/tests/sockets/rfid_client.sock.json similarity index 100% rename from tests/servers/rfid_client.sock.json rename to tests/sockets/rfid_client.sock.json