From 0ef7d89bf33a6e6809af5bb92a5159a8525ef1eb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Simon=20D=C3=B6ring?= <simon.doering@stud.hs-bochum.de>
Date: Fri, 5 Feb 2021 21:39:44 +0100
Subject: [PATCH] Show message on sender side when socket disconnects

---
 sender/camera-sender.js | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/sender/camera-sender.js b/sender/camera-sender.js
index aedfa9a..00bd473 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();
         }
     }
-- 
GitLab