Skip to content

Instantly share code, notes, and snippets.

@jefBinomed
Created June 17, 2015 14:48
Show Gist options
  • Save jefBinomed/f0f9697b022627b73579 to your computer and use it in GitHub Desktop.
Save jefBinomed/f0f9697b022627b73579 to your computer and use it in GitHub Desktop.
Programmez-07/08_2015-PortalWebrtc-03
if (isInitiator) {
try{
//Reliable DataChannelsnotyet supportedinChrome
sendChannel = pc.createDataChannel("sendDataChannel",
{reliable: false});
sendChannel.onmessage = handleMessage;
trace('Createdsenddatachannel');
} catch (e) {
alert('Failedtocreatedatachannel. ' +
'You needChrome M25or later with RtpDataChannelenabled');
trace('createDataChannel() failed with exception: ' + e.message);
}
sendChannel.onopen = handleSendChannelStateChange;
sendChannel.onclose = handleSendChannelStateChange;
} else {
pc.ondatachannel = gotReceiveChannel;
}
}
function sendData() {
vardata = sendTextarea.value;
sendChannel.send(data);
trace('Sentdata: ' + data);
}
function gotReceiveChannel(event) {
trace('ReceiveChannelCallback');
sendChannel = event.channel;
sendChannel.onmessage = handleMessage;
sendChannel.onopen = handleReceiveChannelStateChange;
sendChannel.onclose = handleReceiveChannelStateChange;
}
function handleMessage(event) {
trace('Received message: ' + event.data);
receiveTextarea.value = event.data;
}
function handleSendChannelStateChange() {
var readyState = sendChannel.readyState;
trace('Sendchannel stateis: ' + readyState);
enableMessageInterface(readyState == "open");
}
function handleReceiveChannelStateChange() {
var readyState = sendChannel.readyState;
trace('Receivechannel stateis: ' + readyState);
enableMessageInterface(readyState == "open");
}
function enableMessageInterface(shouldEnable) {
if (shouldEnable) {
dataChannelSend.disabled = false;
dataChannelSend.focus();
dataChannelSend.placeholder = "";
sendButton.disabled = false;
} else {
dataChannelSend.disabled = true;
sendButton.disabled = true;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment