ws_client.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package web_socket
  2. //
  3. //var clients = make(map[*websocket.Conn]bool) // 存储所有连接的客户端
  4. //var broadcast = make(chan Message) // 用于广播消息
  5. //var mutex sync.Mutex // 用于同步访问clients map
  6. //
  7. //var upgrader
  8. //type Message struct {
  9. // User string `json:"user"`
  10. // Msg string `json:"msg"`
  11. // Topic string `json:"topic"`
  12. //}
  13. //
  14. //func serveWs(w we_http.ResponseWriter, r *we_http.Request) {
  15. // conn, err := upgrader.Upgrade(w, r, nil)
  16. // if err != nil {
  17. // log.Fatal(err)
  18. // return
  19. // }
  20. // defer conn.Close()
  21. //
  22. // mutex.Lock()
  23. // clients[conn] = true
  24. // mutex.Unlock()
  25. //
  26. // for {
  27. // var msg Message
  28. // err := conn.ReadJSON(&msg)
  29. // if err != nil {
  30. // mutex.Lock()
  31. // delete(clients, conn)
  32. // mutex.Unlock()
  33. // break
  34. // }
  35. // broadcast <- msg
  36. // }
  37. //}
  38. //
  39. //func broadcastMessages() {
  40. // for {
  41. // msg := <-broadcast
  42. // mutex.Lock()
  43. // for client := range clients {
  44. // err := client.WriteJSON(msg)
  45. // if err != nil {
  46. // log.Printf("error: %v", err)
  47. // client.Close()
  48. // delete(clients, client)
  49. // }
  50. // }
  51. // mutex.Unlock()
  52. // }
  53. //}
  54. //
  55. //func init() {
  56. // upgrader = websocket.Upgrader{
  57. // ReadBufferSize: 1024,
  58. // WriteBufferSize: 1024,
  59. // CheckOrigin: func(r *we_http.Request) bool {
  60. // return true
  61. // },
  62. // }
  63. //
  64. // we_http.HandleFunc("/ws", serveWs)
  65. // go broadcastMessages()
  66. //
  67. // we_http.ListenAndServe(":8080", nil)
  68. //}