我使用 Cobra 框架向我的 CLI 應用程序添加了一個新命令。該命令應該啟動接受套接字連接的 TCP 服務器。它接收一個有效負載,它是absolute一個文件/目錄的路徑,并嘗試刪除它。這是命令的代碼package cmdimport ( "bufio" "fmt" "net" "os" "github.com/spf13/cobra" "wpgenius.io/util")var cachePurgerCmd = &cobra.Command{ Use: "cache-purger", Short: "Listen for request to purge NGINX page cache", Run: func(cmd *cobra.Command, args []string) { dstream, err := net.Listen("tcp", ":9876") if err != nil { util.HandleError(err, "Can not start listener..") return } fmt.Println("Listening for purge requests...") defer dstream.Close() for { con, err := dstream.Accept() if err != nil { util.HandleError(err, "Can not accept connection") os.Exit(1) } go handleRequest(con) } },}func handleRequest(con net.Conn) { path, err := bufio.NewReader(con).ReadString('\n') if err != nil { return } defer con.Close() err = os.Remove(path) if err != nil { con.Write([]byte("ERROR")) fmt.Println(err) util.HandleError(err, "Can not delete cache file") return } con.Write([]byte("SUCCESS"))}func init() { rootCmd.AddCommand(cachePurgerCmd)}盡管文件/目錄存在,但我仍然會no such file or directory出錯。我通過簡單地將它添加os.Remove到main函數中來進行健全性檢查,以確保它與路徑無關,并且我可以看到它成功刪除了文件/目錄。我不確定它是否go routing與tcp server!任何幫助將不勝感激!
- 1 回答
- 0 關注
- 130 瀏覽
添加回答
舉報
0/150
提交
取消