diff --git a/controller/websocket_controller.go b/controller/websocket_controller.go index 0b7333a..fb6ef42 100644 --- a/controller/websocket_controller.go +++ b/controller/websocket_controller.go @@ -271,15 +271,15 @@ func (c *WebSocketController) handleClientMessage(senderID string, message []byt // 修复:正确解析通话信令并分发处理 var callSignal models.CallSignal - if err := json.Unmarshal(message, &callSignal); err == nil && callSignal.Action != "" { + if err := json.Unmarshal(message, &callSignal); err == nil && callSignal.CallStatus != "" { // 获取发送者用户ID senderUserID, _ := c.getUserIDByClientID(senderID) - log.Printf("📞📞 处理通话信令: \n Action=%s \n CallID=%s \n CallType=%d \n SenderUserID=%s \n CallerID=%s \n CalleeID=%s", - callSignal.Action, callSignal.CallID, callSignal.CallType, senderUserID, callSignal.CallerID, callSignal.CalleeID) + log.Printf("📞📞 处理通话信令: \n CallStatus=%s \n CallID=%s \n CallType=%d \n SenderUserID=%s \n CallerID=%s \n CalleeID=%s", + callSignal.CallStatus, callSignal.CallID, callSignal.CallType, senderUserID, callSignal.CallerID, callSignal.CalleeID) // 处理不同类型的通话动作 - switch callSignal.Action { + switch callSignal.CallStatus { case "invite": c.handleCallInvite(senderID, senderUserID, callSignal) case "accept": @@ -291,7 +291,7 @@ func (c *WebSocketController) handleClientMessage(senderID string, message []byt case "candidate": c.handleCallCandidate(senderID, senderUserID, callSignal) default: - log.Printf("⚠️ 未知的通话动作: %s", callSignal.Action) + log.Printf("⚠️ 未知的通话动作: %s", callSignal.CallStatus) } return } diff --git a/models/messages.go b/models/messages.go index 23e94c2..bc1b54f 100644 --- a/models/messages.go +++ b/models/messages.go @@ -48,12 +48,12 @@ type BindRequest struct { // 通话信令结构 type CallSignal struct { - Action string `json:"action"` // 动作: invite/accept/reject/end/candidate - CallType int `json:"call_type"` // 通话类型:6=视频,7=语音 - CallID string `json:"call_id"` // 通话唯一ID - CallerID string `json:"caller_id"` // 主叫用户ID - CalleeID string `json:"callee_id"` // 被叫用户ID - Data string `json:"data"` // 数据(SDP/ICE候选) + CallStatus string `json:"call_status"` // 动作: invite/accept/reject/end/candidate + CallType int `json:"call_type"` // 通话类型:6=视频,7=语音 + CallID string `json:"call_id"` // 通话唯一ID + CallerID string `json:"caller_id"` // 主叫用户ID + CalleeID string `json:"callee_id"` // 被叫用户ID + Data string `json:"data"` // 数据(SDP/ICE候选) } // Redis键常量