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)
//}
