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"}
|
//{\n\t"Type":"ping"}
|
||||||
|
|
||||||
//{\"Type\":\"txt\",\"content\":\"c4e3bac3a3accac0bde7a3a1\","jg":"21""} 间隔秒
|
//{\"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)
|
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
|
||||||
|
}
|
||||||
|
|||||||
@@ -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())
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
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] = 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()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user