package web_socket // //var clients = make(map[*websocket.Conn]bool) // 存储所有连接的客户端 //var broadcast = make(chan Message) // 用于广播消息 //var mutex sync.Mutex // 用于同步访问clients map // //var upgrader //type Message struct { // User string `json:"user"` // Msg string `json:"msg"` // Topic string `json:"topic"` //} // //func serveWs(w we_http.ResponseWriter, r *we_http.Request) { // conn, err := upgrader.Upgrade(w, r, nil) // if err != nil { // log.Fatal(err) // return // } // defer conn.Close() // // mutex.Lock() // clients[conn] = true // mutex.Unlock() // // for { // var msg Message // err := conn.ReadJSON(&msg) // if err != nil { // mutex.Lock() // delete(clients, conn) // mutex.Unlock() // break // } // broadcast <- msg // } //} // //func broadcastMessages() { // for { // msg := <-broadcast // mutex.Lock() // for client := range clients { // err := client.WriteJSON(msg) // if err != nil { // log.Printf("error: %v", err) // client.Close() // delete(clients, client) // } // } // mutex.Unlock() // } //} // //func init() { // upgrader = websocket.Upgrader{ // ReadBufferSize: 1024, // WriteBufferSize: 1024, // CheckOrigin: func(r *we_http.Request) bool { // return true // }, // } // // we_http.HandleFunc("/ws", serveWs) // go broadcastMessages() // // we_http.ListenAndServe(":8080", nil) //}