init
This commit is contained in:
88
Backend/internal/controller/websocket/websocketV1.go
Normal file
88
Backend/internal/controller/websocket/websocketV1.go
Normal file
@@ -0,0 +1,88 @@
|
||||
package websocket
|
||||
|
||||
//
|
||||
//import (
|
||||
// "log"
|
||||
// "net/http"
|
||||
// "sync"
|
||||
//
|
||||
// "github.com/gogf/gf/v2/net/ghttp"
|
||||
// "github.com/gorilla/websocket"
|
||||
//)
|
||||
//
|
||||
//// 定义 WebSocket 升级器
|
||||
//var upgrader = websocket.Upgrader{
|
||||
// CheckOrigin: func(r *http.Request) bool {
|
||||
// return true
|
||||
// },
|
||||
//}
|
||||
//
|
||||
//// 存储客户端连接
|
||||
//var (
|
||||
// clients = make(map[*websocket.Conn]bool)
|
||||
// clientsMu sync.Mutex // 保护 clients map 的互斥锁
|
||||
// broadcast = make(chan string, 256) // 广播信息通道,带缓冲
|
||||
//)
|
||||
//
|
||||
//// 初始化广播处理(只启动一次)
|
||||
//var once sync.Once
|
||||
//
|
||||
//// HandlerConnection 处理websocket连接
|
||||
//func HandlerConnectionV1(r *ghttp.Request) {
|
||||
// // 启动广播处理 goroutine(只启动一次)
|
||||
// once.Do(func() {
|
||||
// go handleBroadcast()
|
||||
// })
|
||||
//
|
||||
// ws, err := upgrader.Upgrade(r.Response.Writer, r.Request, nil)
|
||||
// if err != nil {
|
||||
// log.Printf("upgrade error: %v", err)
|
||||
// return
|
||||
// }
|
||||
// defer func() {
|
||||
// clientsMu.Lock()
|
||||
// delete(clients, ws)
|
||||
// clientsMu.Unlock()
|
||||
// ws.Close()
|
||||
// }()
|
||||
//
|
||||
// // 注册新客户端
|
||||
// clientsMu.Lock()
|
||||
// clients[ws] = true
|
||||
// clientsMu.Unlock()
|
||||
//
|
||||
// for {
|
||||
// var message string
|
||||
// err := ws.ReadJSON(&message)
|
||||
// if err != nil {
|
||||
// log.Printf("read error: %v", err)
|
||||
// clientsMu.Lock()
|
||||
// delete(clients, ws)
|
||||
// clientsMu.Unlock()
|
||||
// break
|
||||
// }
|
||||
// // 将消息发送到广播通道
|
||||
// select {
|
||||
// case broadcast <- message:
|
||||
// default:
|
||||
// log.Printf("broadcast channel full, dropping message")
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//// 将广播通道给所有的用户
|
||||
//func handleBroadcast() {
|
||||
// for {
|
||||
// message := <-broadcast
|
||||
// clientsMu.Lock()
|
||||
// for client := range clients {
|
||||
// err := client.WriteJSON(message)
|
||||
// if err != nil {
|
||||
// log.Printf("write error: %v", err)
|
||||
// client.Close()
|
||||
// delete(clients, client)
|
||||
// }
|
||||
// }
|
||||
// clientsMu.Unlock()
|
||||
// }
|
||||
//}
|
||||
Reference in New Issue
Block a user