package main import ( "fmt" "net/http" "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" "golang.org/x/net/websocket" ) type result struct { // 通过json标签指定json字段名 Sataus int `json:"sataus"` Code int `json:"code"` Tip_number int `json:"tip_number"` } var tip_number int = 0 func main() { e := echo.New() e.Use(middleware.CORSWithConfig(middleware.CORSConfig{AllowOrigins: []string{"*"}, AllowMethods: []string{echo.GET, echo.HEAD, echo.PUT, echo.PATCH, echo.POST, echo.DELETE}})) e.GET("/add", add) e.GET("/ws", ws) e.Logger.Fatal(e.Start(":1323")) } func add(c echo.Context) error { tip_number++ return c.JSON(http.StatusOK, "ok") } func ws(c echo.Context) error { websocket.Handler(func(ws *websocket.Conn) { defer ws.Close() for { // Write err := websocket.Message.Send(ws, tip_number) if err != nil { c.Logger().Error(err) } // Read msg := "" err = websocket.Message.Receive(ws, &msg) if err != nil { c.Logger().Error(err) } fmt.Printf("%s\n", msg) } }).ServeHTTP(c.Response(), c.Request()) return nil }