package wsdemo

import (
	"ciyon/web/admin"
	c "ciyon/zciyon"
	"fmt"
	"net/http"
)

func Wsdemo(w http.ResponseWriter, r *http.Request) bool {
	ws, err := c.NewCiyWebsocket(w, r)
	if err != nil {
		http.Error(w, err.Error(), http.StatusBadRequest)
		return false
	}
	post := c.NewCiyPost(w, r)
	_, userid := admin.Verifyfast(r, c.CiyDB, post)
	if userid == 0 {
		ws.SendFail(0, "请重新登录")
		ws.Close()
		return false
	}
	fmt.Println(userid)
	//defer ws.Close()
	ws.OnMessage(func(byt []byte) {
		fmt.Println("Received message:", len(byt))
	})
	ws.OnMessageJSON(func(code, wsidx int, json map[string]any) {
		fmt.Println("Received json:", c.Tostr(code), "_wsid:", c.Tostr(wsidx))
		ws.SendFail(wsidx, "err:Sdfasdf")
	})
	ws.OnError(func(error) {
		fmt.Println("Websocket error:", err)
	})
	ws.OnClose(func() {
		fmt.Println("Websocket closed")
	})
	for {
		// ws.SendSucc(4)
		// ws.SendFail(2, "err:Sdfasdf")
		ws.Send([]byte("heasdfhaeytwehjgdjnsfllo"))
		if ws.Isclose {
			break
		}
		c.Sleep(5)
	}
	return true
}
