Open aadog opened 1 year ago
client how do reconnect?
package main import ( "context" "fmt" "github.com/kataras/iris/v12/websocket" "github.com/kataras/neffos" "log" "time" ) const ( endpoint = "ws://192.168.2.45:7000/join" namespace = "default" dialAndConnectTimeout = 6 * time.Second ) var clientEvents = websocket.Namespaces{ namespace: websocket.Events{ websocket.OnNamespaceConnected: func(c *websocket.NSConn, msg websocket.Message) error { log.Printf("connected to namespace: %s", msg.Namespace) room, err := c.JoinRoom(context.TODO(), "default") fmt.Println(err) fmt.Println(room.String()) return nil }, websocket.OnNamespaceDisconnect: func(c *websocket.NSConn, msg websocket.Message) error { log.Printf("disconnected from namespace: %s", msg.Namespace) fmt.Println("reconnect") time.Sleep(time.Second * 1) fmt.Println(c.Conn) return nil }, websocket.OnAnyEvent: func(conn *neffos.NSConn, message neffos.Message) error { fmt.Println(message) return nil }, websocket.OnNativeMessage: func(conn *neffos.NSConn, message neffos.Message) error { fmt.Println(message) return nil }, "chat": func(c *websocket.NSConn, msg websocket.Message) error { log.Printf("%s", string(msg.Body)) return nil }, }, } // 启动 // 检查py引擎是否启动并且上报状态 // 停止 // 保持链接 // 是否运行脚本(当前运行脚本) // 查看日志 // 更新py 工程 func main() { //cmd := exec.Command("whoami") //cmd.Stdout = os.Stdout //cmd.Stderr = os.Stderr //cmd.Run() ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(dialAndConnectTimeout)) defer cancel() dialer := websocket.DefaultGobwasDialer client, err := websocket.Dial(ctx, dialer, endpoint, clientEvents) if err != nil { panic(err) } defer client.Close() client.Connect(ctx, namespace) fmt.Println("wait conn") for { time.Sleep(time.Second * 1) } }
client how do reconnect?