DataChannel/auto-session-establishment.html
This demo does NOT works anymore. Please check this one instead:
https://www.webrtc-experiment.com/DataChannel/
|
|
|
<script src="https://cdn.webrtc-experiment.com/DataChannel.js"></script>
<script>
var channel = new **DataChannel** ('default-channel');
// to send text/data or file
channel. **send** (file || data || 'text');
</script>
In many-to-many data session; you can share direct messages or files between specific users:
channel.channels[userid].send(file || data || 'text message');
To be alerted if a user leaves your room:
channel.onleave = function(userid) {
// remove that user's photo/image using his user-id
};
channel.leave(userid); // throw a user out of your room!
channel.leave(); // close your own entire data session
Following things will happen if you are a room owner and you tried to close your data session using channel.leave():
: DataChannel.js will never "auto" reinitiate the data session.
<script>
// to be alerted when data ports get open
channel. **onopen** = function(userid) {
// user.photo.id = userid; ---- see "onleave" and "leave" above ↑
// direct messages!
channel.channels[userid].send(file || data || 'text message');
}
// to be alerted when data ports get new message
channel. **onmessage** = function(message, userid) {
// send direct message to same user using his user-id
channel.channels[userid].send('cool!');
}
// show progress bar!
channel. **onFileProgress** = function (packets) {
// packets.remaining
// packets.sent
// packets.received
// packets.length
};
// on file successfully sent
channel. **onFileSent** = function (file) {
// file.name
// file.size
};
// on file successfully received
channel. **onFileReceived** = function (fileName) {};
</script>
<script>
// error to open data ports
channel. **onerror** = function(event) {}
// data ports suddenly dropped
channel. **onclose** = function(event) {}
</script>
<script>
// by default socket.io is used for signaling; you can override it
var channel = new **DataChannel** ('default-channel', {
openSignalingChannel: function(config) {
var socket = io.connect('http://your-site:8888');
socket.channel = config.channel || this.channel || 'default-channel';
socket.on('message', config.onmessage);
socket.send = function (data) {
socket.emit('message', data);
};
if (config.onopen) setTimeout(config.onopen, 1);
return socket;
}
});
</script>
Send Message