diff --git a/main.go b/main.go index 0d29f00..82da86a 100644 --- a/main.go +++ b/main.go @@ -222,7 +222,7 @@ func websocketHandler(w http.ResponseWriter, r *http.Request) { if msg, err := json.Marshal(ws.WebsocketMessage{ Event: ws.MessageTypeCandidate, - Data: string(candidateString), + Data: candidateString, }); err == nil { hub.RLock() if _, ok := hub.Clients[c]; ok { @@ -264,7 +264,7 @@ func websocketHandler(w http.ResponseWriter, r *http.Request) { if msg, err := json.Marshal(ws.WebsocketMessage{ Event: ws.MessageTypeOffer, - Data: string(offerString), + Data: offerString, }); err == nil { hub.RLock() if _, ok := hub.Clients[c]; ok { diff --git a/ws/client.go b/ws/client.go index f241bbd..3c0f358 100644 --- a/ws/client.go +++ b/ws/client.go @@ -66,7 +66,7 @@ func (c *Client) ReadLoop() { switch message.Event { case MessageTypeCandidate: candidate := webrtc.ICECandidateInit{} - if err := json.Unmarshal([]byte(message.Data), &candidate); err != nil { + if err := json.Unmarshal(message.Data, &candidate); err != nil { log.Printf("could not unmarshal candidate msg: %s", err) return } @@ -78,7 +78,7 @@ func (c *Client) ReadLoop() { case MessageTypeAnswer: answer := webrtc.SessionDescription{} - if err := json.Unmarshal([]byte(message.Data), &answer); err != nil { + if err := json.Unmarshal(message.Data, &answer); err != nil { log.Printf("could not unmarshal answer msg: %s", err) return } diff --git a/ws/hub.go b/ws/hub.go index b6df381..f967d21 100644 --- a/ws/hub.go +++ b/ws/hub.go @@ -97,7 +97,7 @@ func (h *Hub) SendInfo(info Info) { } if msg, err := json.Marshal(WebsocketMessage{ Event: MessageTypeInfo, - Data: string(i), + Data: i, }); err == nil { h.Broadcast <- msg } else { diff --git a/ws/message.go b/ws/message.go index 6c2d721..ede43ea 100644 --- a/ws/message.go +++ b/ws/message.go @@ -1,5 +1,7 @@ package ws +import "encoding/json" + const ( MessageTypeAnswer = "answer" MessageTypeCandidate = "candidate" @@ -8,6 +10,6 @@ const ( ) type WebsocketMessage struct { - Event string `json:"event"` - Data string `json:"data"` + Event string `json:"event"` + Data json.RawMessage `json:"data"` }