RTCMultiConnection & WebSync as Signaling GateWay! ® Muaz Khan
Copyright © 2013 Muaz Khan<@muazkh> » @WebRTC Experiments » Google+ » What's New?
WebRTC DataChannel
Text Chat |
Share Files |
- Mesh networking model is implemented to open multiple interconnected peer connections
- Maximum peer connections limit is 256 (on chrome)
Feedback
How to use WebSync for Signaling?
// www.RTCMultiConnection.org/latest.js var connection = new RTCMultiConnection(); // easiest way to customize what you need! connection.session = { audio: true, video: true }; // on getting local or remote media stream connection.onstream = function(e) { document.body.appendChild(e.mediaElement); }; // ------------------------------------------------------------------ // start-using WebSync for signaling var channels = {}; var username = Math.round(Math.random() * 60535) + 5000; var client = new fm.websync.client('websync.ashx'); client.setAutoDisconnect({ synchronous: true }); client.connect({ onSuccess: function () { client.join({ channel: '/chat', userId: username, userNickname: username, onReceive: function (event) { var message = JSON.parse(event.getData().text); if (channels[message.channel] && channels[message.channel].onmessage) { channels[message.channel].onmessage(message.message); } } }); } }); connection.openSignalingChannel = function (config) { var channel = config.channel || this.channel; channels[channel] = config; if (config.onopen) setTimeout(config.onopen, 1000); return { send: function (message) { client.publish({ channel: '/chat', data: { username: username, text: JSON.stringify({ message: message, channel: channel }) } }); } }; }; // end-using WebSync for signaling // ------------------------------------------------------------------ // check existing sessions connection.connect(); // open new session document.getElementById('open-new-session').onclick = function() { connection.open(); };