From c7a178e5a46024596b67a89d231a48257b332341 Mon Sep 17 00:00:00 2001 From: mbattista Date: Sun, 4 Apr 2021 20:08:28 +0000 Subject: [PATCH] object instead of string --- client/src/neko/base.ts | 4 ++-- client/src/neko/messages.ts | 2 +- server/internal/types/config/webrtc.go | 6 +++--- server/internal/types/message/messages.go | 4 +++- server/internal/websocket/signal.go | 9 +-------- 5 files changed, 10 insertions(+), 15 deletions(-) diff --git a/client/src/neko/base.ts b/client/src/neko/base.ts index 5aa98895..37299205 100644 --- a/client/src/neko/base.ts +++ b/client/src/neko/base.ts @@ -183,7 +183,7 @@ export abstract class BaseClient extends EventEmitter { this._ws!.send(JSON.stringify({ event, ...payload })) } - public createPeer(sdp: string, lite: boolean, servers: string) { + public createPeer(sdp: string, lite: boolean, servers: RTCIceServer[]) { this.emit('debug', `creating peer`) if (!this.socketOpen) { this.emit( @@ -202,7 +202,7 @@ export abstract class BaseClient extends EventEmitter { this._peer = new RTCPeerConnection() if (lite !== true) { this._peer = new RTCPeerConnection({ - iceServers: JSON.parse(servers), + iceServers: servers, }) } diff --git a/client/src/neko/messages.ts b/client/src/neko/messages.ts index a476262f..eb6a04a0 100644 --- a/client/src/neko/messages.ts +++ b/client/src/neko/messages.ts @@ -67,7 +67,7 @@ export interface SignalProvideMessage extends WebSocketMessage, SignalProvidePay export interface SignalProvidePayload { id: string lite: boolean - ice: string + ice: RTCIceServer[] sdp: string } diff --git a/server/internal/types/config/webrtc.go b/server/internal/types/config/webrtc.go index 4c6d727e..1f7a8e71 100644 --- a/server/internal/types/config/webrtc.go +++ b/server/internal/types/config/webrtc.go @@ -54,9 +54,9 @@ func (s *WebRTC) Set() { s.ICELite = viper.GetBool("icelite") s.ICEServers = []webrtc.ICEServer{{URLs: viper.GetStringSlice("iceserver")}} if (viper.GetString("iceservers") != "") { - errj := json.Unmarshal([]byte(viper.GetString("iceservers")), &s.ICEServers) - if (errj != nil) { - panic(errj) + err := json.Unmarshal([]byte(viper.GetString("iceservers")), &s.ICEServers) + if (err != nil) { + panic(err) } } s.NAT1To1IPs = viper.GetStringSlice("nat1to1") diff --git a/server/internal/types/message/messages.go b/server/internal/types/message/messages.go index 62195ce0..250f2ebb 100644 --- a/server/internal/types/message/messages.go +++ b/server/internal/types/message/messages.go @@ -2,6 +2,8 @@ package message import ( "n.eko.moe/neko/internal/types" + + "github.com/pion/webrtc/v3" ) type Message struct { @@ -18,7 +20,7 @@ type SignalProvide struct { ID string `json:"id"` SDP string `json:"sdp"` Lite bool `json:"lite"` - ICE string `json:"ice"` + ICE []webrtc.ICEServer `json:"ice"` } type SignalAnswer struct { diff --git a/server/internal/websocket/signal.go b/server/internal/websocket/signal.go index 1059c10a..e24db554 100644 --- a/server/internal/websocket/signal.go +++ b/server/internal/websocket/signal.go @@ -1,8 +1,6 @@ package websocket import ( - "encoding/json" - "n.eko.moe/neko/internal/types" "n.eko.moe/neko/internal/types/event" "n.eko.moe/neko/internal/types/message" @@ -14,17 +12,12 @@ func (h *MessageHandler) signalProvide(id string, session types.Session) error { return err } - tmp, err := json.Marshal(ice) - if (err != nil) { - panic(err) - } - if err := session.Send(message.SignalProvide{ Event: event.SIGNAL_PROVIDE, ID: id, SDP: sdp, Lite: lite, - ICE: string(tmp), + ICE: ice, }); err != nil { return err }