1
0
mirror of https://gitlab.crans.org/nounous/ghostream.git synced 2025-02-11 20:01:17 +00:00

Compare commits

...

2 Commits

Author SHA1 Message Date
Alexandre Iooss
a2a74761bb
Parse JSON from server SDP 2020-10-22 08:23:35 +02:00
Alexandre Iooss
ba8bf426e0
Fix JSON decoding 2020-10-22 08:19:01 +02:00
4 changed files with 15 additions and 15 deletions

View File

@ -90,9 +90,9 @@ export class GsWebRTC {
/** /**
* Set WebRTC remote description * Set WebRTC remote description
* After that, the connection will be established and ontrack will be fired. * After that, the connection will be established and ontrack will be fired.
* @param {*} data Session description data * @param {RTCSessionDescription} sdp Session description data
*/ */
setRemoteDescription(data) { setRemoteDescription(sdp) {
this.pc.setRemoteDescription(new RTCSessionDescription(data)); this.pc.setRemoteDescription(sdp);
} }
} }

View File

@ -55,9 +55,9 @@ export class GsWebSocket {
*/ */
onDescription(callback) { onDescription(callback) {
this.socket.addEventListener("message", (event) => { this.socket.addEventListener("message", (event) => {
// FIXME: json to session description
console.log("Message from server ", event.data); console.log("Message from server ", event.data);
callback(event.data); const sdp = new RTCSessionDescription(JSON.parse(event.data));
callback(sdp);
}); });
} }
} }

View File

@ -26,8 +26,8 @@ export function initViewerPage(stream, stunServers, viewersCounterRefreshPeriod)
c.onICECandidate(localDescription => { c.onICECandidate(localDescription => {
s.sendDescription(localDescription, stream, quality); s.sendDescription(localDescription, stream, quality);
}); });
s.onDescription(data => { s.onDescription(sdp => {
c.setRemoteDescription(data); c.setRemoteDescription(sdp);
}); });
// Register keyboard events // Register keyboard events

View File

@ -16,9 +16,9 @@ var upgrader = websocket.Upgrader{
// clientDescription is sent by new client // clientDescription is sent by new client
type clientDescription struct { type clientDescription struct {
webRtcSdp webrtc.SessionDescription WebRtcSdp webrtc.SessionDescription
stream string Stream string
quality string Quality string
} }
// websocketHandler exchanges WebRTC SDP and viewer count // websocketHandler exchanges WebRTC SDP and viewer count
@ -40,22 +40,22 @@ func websocketHandler(w http.ResponseWriter, r *http.Request) {
} }
// Get requested stream // Get requested stream
stream, err := streams.Get(c.stream) stream, err := streams.Get(c.Stream)
if err != nil { if err != nil {
log.Printf("Stream not found: %s", c.stream) log.Printf("Stream not found: %s", c.Stream)
return return
} }
// Get requested quality // Get requested quality
q, err := stream.GetQuality(c.quality) q, err := stream.GetQuality(c.Quality)
if err != nil { if err != nil {
log.Printf("Quality not found: %s", c.quality) log.Printf("Quality not found: %s", c.Quality)
return return
} }
// Exchange session descriptions with WebRTC stream server // Exchange session descriptions with WebRTC stream server
// FIXME: Add trickle ICE support // FIXME: Add trickle ICE support
q.WebRtcRemoteSdp <- c.webRtcSdp q.WebRtcRemoteSdp <- c.WebRtcSdp
localDescription := <-q.WebRtcLocalSdp localDescription := <-q.WebRtcLocalSdp
// Send new local description // Send new local description