package main import ( "log" "net/http" "git.1750studios.com/AniNite/SocialDragon/database" "github.com/gorilla/websocket" ) var wsupgrader = websocket.Upgrader{ ReadBufferSize: 1024, WriteBufferSize: 1024, CheckOrigin: func(r *http.Request) bool { return true }, } var sockets []*websocket.Conn var lastID uint func wsHandler(w http.ResponseWriter, r *http.Request) { conn, err := wsupgrader.Upgrade(w, r, nil) if err != nil { log.Printf("Failed to set websocket upgrade: %+v", err) return } pos := len(sockets) sockets = append(sockets, conn) for { _, _, err := conn.ReadMessage() if err != nil { break } } sockets = append(sockets[:pos], sockets[pos+1:]...) } func SendUpdate(IT database.Item) { for i, socket := range sockets { err := socket.WriteJSON(IT) if err != nil { sockets = append(sockets[:i], sockets[i+1:]...) continue } } }