diff --git a/sender/camera-sender.js b/sender/camera-sender.js index aedfa9aeea936c449937ff41ca96581f51b3f49b..00bd47382fe3cfef225ccfebd7e32a1fca6083b2 100644 --- a/sender/camera-sender.js +++ b/sender/camera-sender.js @@ -54,6 +54,12 @@ document.addEventListener('DOMContentLoaded', function() { registerSocketHandlers(); + function handleUnexpectedSocketDisconnect() { + console.log('Socket disconnected'); + setStatusMessage('Socket disconnected. This either means that you are having connectivity ' + + 'issues or that the server disconnected you on purpose.', STATUS_CODE.error); + } + function registerSocketHandlers() { socket.on('connect', function() { clearTimeout(cameraServerTimeout); @@ -67,6 +73,7 @@ document.addEventListener('DOMContentLoaded', function() { ); } }); + socket.on('disconnect', handleUnexpectedSocketDisconnect); }; function handleSenderInitResponse(data) { @@ -288,7 +295,10 @@ document.addEventListener('DOMContentLoaded', function() { if (videoroomHandle) { videoroomHandle.detach(); } - if (socket) { + if (socket && socket.connected) { + // Remove handler because this disconnect call is expected + // in the case of an error + socket.off('disconnect', handleUnexpectedSocketDisconnect); socket.disconnect(); } }