/// /// /// var startButton = document.getElementById("startButton"); startButton.onclick = start; var copyTextarea = document.getElementById("copy"); var pasteTextarea = document.getElementById("paste"); var receiveButton = document.getElementById("receiveButton"); receiveButton.onclick = handleSignallingMessages; function start() { freedom.emit('start', {}); } freedom.on('signalForPeer', (signal:Churn.ChurnSignallingMessage) => { copyTextarea.value = copyTextarea.value.trim() + '\n' + JSON.stringify(signal); }); // Dispatches each line from the paste box as a signalling channel message. function handleSignallingMessages() { var signals = pasteTextarea.value.split('\n'); for (var i = 0; i < signals.length; i++) { var s:string = signals[i]; var signal:Churn.ChurnSignallingMessage = JSON.parse(s); freedom.emit('handleSignalMessage', signal); } // "Flush" the signalling channels. copyTextarea.value = ''; pasteTextarea.value = ''; } var sendButton = document.getElementById("sendButton"); var sendArea = document.getElementById("sendArea"); var receiveArea = document.getElementById("receiveArea"); freedom.on('ready', function() { console.log('peer connection established!'); sendArea.disabled = false; }); freedom.on('error', function() { console.error('something went wrong with the peer connection'); sendArea.disabled = true; }); sendButton.onclick = function() { freedom.emit('send', { // Currently, PeerConnection does not support empty text messages: // https://github.com/freedomjs/freedom/issues/67 message: sendArea.value || '(empty message)' }); } freedom.on('receive', function(msg:Chat.Message) { receiveArea.value = msg.message; });