diff --git a/main.go b/main.go index 4f1acc8..cdc6301 100644 --- a/main.go +++ b/main.go @@ -117,6 +117,8 @@ func main() { //播放 +// {"Type":"db","Db":"38"} + //{\n\t"Type":"ping"} //{\"Type\":\"txt\",\"content\":\"c4e3bac3a3accac0bde7a3a1\","jg":"21""} 间隔秒 diff --git a/tcpserver/func.go b/tcpserver/func.go index ba15513..6956241 100644 --- a/tcpserver/func.go +++ b/tcpserver/func.go @@ -214,3 +214,14 @@ func (s *Server) GetVoiceConf(client *Client, message []byte) error { fmt.Printf("客户端语音配置状态:%v\r\n", msg.MessageVoiceConf) return nil } +func (s *Server) Db(client *Client, message []byte) error { + var msg Message + if err := json.Unmarshal(message, &msg); err != nil { + return err + } + if msg.Type != "db" { + return fmt.Errorf("unauthorized") + } + fmt.Printf("客户端分贝:%v\r\n", msg.MessageDb) + return nil +} diff --git a/tcpserver/handler.go b/tcpserver/handler.go index 185f3d7..9e6052c 100644 --- a/tcpserver/handler.go +++ b/tcpserver/handler.go @@ -190,6 +190,17 @@ func (h *TCPHandler) HandleClient(conn net.Conn) { continue } broadcastMessage(message) + case "db": + //if !client.IsAuth { + // fmt.Printf("来自未授权客户端的消息 %s\n", conn.RemoteAddr()) + // conn.Close() + // return + //} + if err := h.Server.Db(client, message); err != nil { + fmt.Printf("获取客户端音量分贝错误: %v\n", err) + continue + } + broadcastMessage(message) default: if !client.IsAuth { fmt.Printf("来自未授权客户端的消息 %s\n", conn.RemoteAddr()) diff --git a/tcpserver/message.go b/tcpserver/message.go index 2ecded3..6b9f2a7 100644 --- a/tcpserver/message.go +++ b/tcpserver/message.go @@ -19,6 +19,10 @@ type MessageState struct { State string `json:"State,omitempty"` } +type MessageDb struct { + Db string `json:"Db,omitempty"` +} + //type MessageData struct { // UpDataStruct //} @@ -45,6 +49,7 @@ type MessageVoiceConf struct { Yd string `json:"yd"` IsPlay string `json:"isPlay"` } + type Message struct { MessageType MessageImei @@ -56,4 +61,5 @@ type Message struct { MessageStartData MessageConf `json:"Conf,omitempty"` MessageVoiceConf `json:"VoiceConf,omitempty"` + MessageDb } diff --git a/ws/hub.go b/ws/hub.go index 98b456a..8ce22e6 100644 --- a/ws/hub.go +++ b/ws/hub.go @@ -47,7 +47,7 @@ func (h *Hub) Run() { h.Clients[client.Imei] = make(map[*Client]bool) } h.Clients[client.Imei][client] = true - log.Printf("客户端注册: IMEI=%s", client.Imei) + //log.Printf("客户端注册: IMEI=%s", client.Imei) h.mu.Unlock() case client := <-h.Unregister: @@ -66,21 +66,21 @@ func (h *Hub) Run() { case broadcast := <-h.Broadcast: h.mu.RLock() - log.Printf("收到广播消息: IMEI=%s, Data=%s", broadcast.IMEI, broadcast.Data) + //log.Printf("收到广播消息: IMEI=%s, Data=%s", broadcast.IMEI, broadcast.Data) if clients, ok := h.Clients[broadcast.IMEI]; ok { - log.Printf("找到目标客户端组: IMEI=%s, 客户端数=%d", broadcast.IMEI, len(clients)) + //log.Printf("找到目标客户端组: IMEI=%s, 客户端数=%d", broadcast.IMEI, len(clients)) for client := range clients { select { case client.Send <- broadcast: - log.Printf("消息已发送到客户端: IMEI=%s", client.Imei) + //log.Printf("消息已发送到客户端: IMEI=%s", client.Imei) default: - log.Printf("发送失败,关闭客户端: IMEI=%s", client.Imei) + //log.Printf("发送失败,关闭客户端: IMEI=%s", client.Imei) close(client.Send) delete(clients, client) } } } else { - log.Printf("未找到目标客户端组: IMEI=%s", broadcast.IMEI) + //log.Printf("未找到目标客户端组: IMEI=%s", broadcast.IMEI) } h.mu.RUnlock() }