This commit is contained in:
2025-01-07 16:00:24 +08:00
parent d7b004ea80
commit a467e69f7b
5 changed files with 36 additions and 6 deletions

View File

@@ -117,6 +117,8 @@ func main() {
//播放 //播放
// {"Type":"db","Db":"38"}
//{\n\t"Type":"ping"} //{\n\t"Type":"ping"}
//{\"Type\":\"txt\",\"content\":\"c4e3bac3a3accac0bde7a3a1\","jg":"21""} 间隔秒 //{\"Type\":\"txt\",\"content\":\"c4e3bac3a3accac0bde7a3a1\","jg":"21""} 间隔秒

View File

@@ -214,3 +214,14 @@ func (s *Server) GetVoiceConf(client *Client, message []byte) error {
fmt.Printf("客户端语音配置状态:%v\r\n", msg.MessageVoiceConf) fmt.Printf("客户端语音配置状态:%v\r\n", msg.MessageVoiceConf)
return nil 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
}

View File

@@ -190,6 +190,17 @@ func (h *TCPHandler) HandleClient(conn net.Conn) {
continue continue
} }
broadcastMessage(message) 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: default:
if !client.IsAuth { if !client.IsAuth {
fmt.Printf("来自未授权客户端的消息 %s\n", conn.RemoteAddr()) fmt.Printf("来自未授权客户端的消息 %s\n", conn.RemoteAddr())

View File

@@ -19,6 +19,10 @@ type MessageState struct {
State string `json:"State,omitempty"` State string `json:"State,omitempty"`
} }
type MessageDb struct {
Db string `json:"Db,omitempty"`
}
//type MessageData struct { //type MessageData struct {
// UpDataStruct // UpDataStruct
//} //}
@@ -45,6 +49,7 @@ type MessageVoiceConf struct {
Yd string `json:"yd"` Yd string `json:"yd"`
IsPlay string `json:"isPlay"` IsPlay string `json:"isPlay"`
} }
type Message struct { type Message struct {
MessageType MessageType
MessageImei MessageImei
@@ -56,4 +61,5 @@ type Message struct {
MessageStartData MessageStartData
MessageConf `json:"Conf,omitempty"` MessageConf `json:"Conf,omitempty"`
MessageVoiceConf `json:"VoiceConf,omitempty"` MessageVoiceConf `json:"VoiceConf,omitempty"`
MessageDb
} }

View File

@@ -47,7 +47,7 @@ func (h *Hub) Run() {
h.Clients[client.Imei] = make(map[*Client]bool) h.Clients[client.Imei] = make(map[*Client]bool)
} }
h.Clients[client.Imei][client] = true h.Clients[client.Imei][client] = true
log.Printf("客户端注册: IMEI=%s", client.Imei) //log.Printf("客户端注册: IMEI=%s", client.Imei)
h.mu.Unlock() h.mu.Unlock()
case client := <-h.Unregister: case client := <-h.Unregister:
@@ -66,21 +66,21 @@ func (h *Hub) Run() {
case broadcast := <-h.Broadcast: case broadcast := <-h.Broadcast:
h.mu.RLock() 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 { 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 { for client := range clients {
select { select {
case client.Send <- broadcast: case client.Send <- broadcast:
log.Printf("消息已发送到客户端: IMEI=%s", client.Imei) //log.Printf("消息已发送到客户端: IMEI=%s", client.Imei)
default: default:
log.Printf("发送失败,关闭客户端: IMEI=%s", client.Imei) //log.Printf("发送失败,关闭客户端: IMEI=%s", client.Imei)
close(client.Send) close(client.Send)
delete(clients, client) delete(clients, client)
} }
} }
} else { } else {
log.Printf("未找到目标客户端组: IMEI=%s", broadcast.IMEI) //log.Printf("未找到目标客户端组: IMEI=%s", broadcast.IMEI)
} }
h.mu.RUnlock() h.mu.RUnlock()
} }