package handler import ( "github.com/gorilla/websocket" "github.com/loveuer/nf" "github.com/loveuer/nf/nft/log" "github.com/loveuer/nf/nft/resp" "github.com/loveuer/ushare/internal/controller" "net/http" ) func LocalRegister() nf.HandlerFunc { return func(c *nf.Ctx) error { ip := c.IP(true) ua := c.Get("User-Agent") client := controller.RoomController.Register(ip, ua) return resp.Resp200(c, client) } } func LocalClients() nf.HandlerFunc { return func(c *nf.Ctx) error { room := c.Query("room") if room == "" { return c.Status(http.StatusBadRequest).JSON(map[string]string{"err": "room can't be empty"}) } list := controller.RoomController.List(room) return resp.Resp200(c, list) } } func LocalWS() nf.HandlerFunc { upgrader := websocket.Upgrader{ ReadBufferSize: 1024, WriteBufferSize: 1024, CheckOrigin: func(r *http.Request) bool { return true }, } return func(c *nf.Ctx) error { id := c.Query("id") if id == "" { return c.Status(http.StatusBadRequest).JSON(map[string]string{"error": "id is empty"}) } conn, err := upgrader.Upgrade(c.Writer, c.Request, nil) if err != nil { log.Error("LocalWS: failed to upgrade websocket connection, err = %s", err.Error()) return err } controller.RoomController.Enter(conn, id) return nil } }