package watch import ( "fmt" "github.com/samuel/go-zookeeper/zk" "time" ) var hosts = []string{"localhost:8000"} var path1 = "/whatzk" var flags int32 = zk.FlagEphemeral var data1 = []byte("hello,this is a zk go test demo!!!") var acls = zk.WorldACL(zk.PermAll) func main() { option := zk.WithEventCallback(callback) //调用zk.WithEventCallback(callback)设置回调 conn, _, err := zk.Connect(hosts, time.Second*5, option) defer conn.Close() if err != nil { fmt.Println(err) return } _, _, _, err = conn.ExistsW(path1) if err != nil { fmt.Println(err) return } create(conn, path1, data1) time.Sleep(time.Second * 2) _, _, _, err = conn.ExistsW(path1) if err != nil { fmt.Println(err) return } delete(conn, path1) } func callback(event zk.Event) { fmt.Println("*******************") fmt.Println("path:", event.Path) fmt.Println("type:", event.Type.String()) fmt.Println("state:", event.State.String()) fmt.Println("-------------------") } func create(conn *zk.Conn, path string, data []byte) { _, err_create := conn.Create(path, data, flags, acls) if err_create != nil { fmt.Println(err_create) return } }