diff options
author | dakkar <dakkar@thenautilus.net> | 2020-06-21 17:40:38 +0000 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2020-07-25 11:56:19 +0000 |
commit | a00ae567375222a8afa65579ac0290ff1ebe6b26 (patch) | |
tree | 5060c121c71efab50916bbf61e43ca35b1148189 /main.go | |
parent | disable origin check for websocket connection (diff) | |
download | rtwatch-a00ae567375222a8afa65579ac0290ff1ebe6b26.tar.gz rtwatch-a00ae567375222a8afa65579ac0290ff1ebe6b26.tar.bz2 rtwatch-a00ae567375222a8afa65579ac0290ff1ebe6b26.zip |
move HTML+JS to separate file
I got fed up with rebuilding every time I changed something; plus,
syntax highlight is easier this way
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 75 |
1 files changed, 0 insertions, 75 deletions
@@ -13,75 +13,6 @@ import ( "github.com/pion/webrtc/v2" ) -const homeHTML = `<!DOCTYPE html> -<html lang="en"> - <head> - <title>synced-playback</title> - </head> - <body id="body"> - <video id="video1" autoplay playsinline></video> - - <div> - <input type="number" id="seekTime" value="30"> - <button type="button" onClick="seekClick()">Seek</button> - <button type="button" onClick="playClick()">Play</button> - <button type="button" onClick="pauseClick()">Pause</button> - </div> - - <script> - let conn = new WebSocket('ws://' + window.location.host + '/ws') - let pc = new RTCPeerConnection() - - window.seekClick = () => { - conn.send(JSON.stringify({event: 'seek', data: document.getElementById('seekTime').value})) - } - window.playClick = () => { - conn.send(JSON.stringify({event: 'play', data: ''})) - } - window.pauseClick = () => { - conn.send(JSON.stringify({event: 'pause', data: ''})) - } - - pc.ontrack = function (event) { - if (event.track.kind === 'audio') { - return - } - var el = document.getElementById('video1') - el.srcObject = event.streams[0] - el.autoplay = true - el.controls = true - } - - conn.onopen = () => { - pc.createOffer({offerToReceiveVideo: true, offerToReceiveAudio: true}).then(offer => { - pc.setLocalDescription(offer) - conn.send(JSON.stringify({event: 'offer', data: JSON.stringify(offer)})) - }) - } - conn.onclose = evt => { - console.log('Connection closed') - } - conn.onmessage = evt => { - let msg = JSON.parse(evt.data) - if (!msg) { - return console.log('failed to parse msg') - } - - switch (msg.event) { - case 'answer': - answer = JSON.parse(msg.data) - if (!answer) { - return console.log('failed to parse answer') - } - pc.setRemoteDescription(answer) - } - } - window.conn = conn - </script> - </body> -</html> -` - var ( upgrader = websocket.Upgrader{ ReadBufferSize: 1024, @@ -138,7 +69,6 @@ func main() { pipeline = gst.CreatePipeline(containerPath, audioTrack, videoTrack) pipeline.Start() - http.HandleFunc(httpPath, serveHome) http.HandleFunc(httpPath + "/ws/", serveWs) fmt.Println(fmt.Sprintf("Video file '%s' is now available on '%s', have fun!", containerPath, httpListenAddress)) @@ -236,8 +166,3 @@ func serveWs(w http.ResponseWriter, r *http.Request) { } } } - -func serveHome(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "text/html; charset=utf-8") - fmt.Fprintf(w, homeHTML) -} |