xx
This commit is contained in:
2
main.go
2
main.go
@@ -117,6 +117,8 @@ func main() {
|
||||
|
||||
//播放
|
||||
|
||||
// {"Type":"db","Db":"38"}
|
||||
|
||||
//{\n\t"Type":"ping"}
|
||||
|
||||
//{\"Type\":\"txt\",\"content\":\"c4e3bac3a3accac0bde7a3a1\","jg":"21""} 间隔秒
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
12
ws/hub.go
12
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()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user