A socket disconnection could occur due to various reasons (Eg: a network disconnection). To overcome this we would recommend reconnecting on a disconnection event.


You can refer to the below sample code to try to rejoin a room on a socket disconnect.


var isChannelOpen = true;
var interval;

function tryJoiningRoom() {
 if (!isChannelOpen) {
 SkylinkDemo.joinRoom({ // Replace with your preferred constraints
 audio: true,
 video: true
 });
 } else {
 clearInterval(interval); // Channel is open. So we clear the interval
 }
};

SkylinkDemo.on('sessionDisconnect', function(sid, peerInfo) { // This event is fired when the socket connection closes abruptly
 isChannelOpen = false;
 interval = setInterval(tryJoiningRoom, 2000); // We try to rejoin the room every 2 seconds until socket channel is opened.
});

SkylinkDemo.on('channelOpen', function() { // This event is fired when the socket connection is opened
 isChannelOpen = true;
});