sendrecv/js: Handle OFFER_REQUEST as part of the switch
authorNirbheek Chauhan <nirbheek@centricular.com>
Tue, 9 Feb 2021 08:57:31 +0000 (14:27 +0530)
committerNirbheek Chauhan <nirbheek@centricular.com>
Wed, 10 Feb 2021 10:51:30 +0000 (16:21 +0530)
This is clearer, and also stricter w.r.t. what sort of messages we
accept.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-examples/-/merge_requests/31>

webrtc/sendrecv/js/webrtc.js

index b646b88..6f893e7 100644 (file)
@@ -130,40 +130,38 @@ function onServerMessage(event) {
             if (!peer_connection)
                 createCall(null).then (generateOffer);
             return;
+        case "OFFER_REQUEST":
+            // The peer wants us to set up and then send an offer
+            if (!peer_connection)
+                createCall(null).then (generateOffer);
+            return;
         default:
             if (event.data.startsWith("ERROR")) {
                 handleIncomingError(event.data);
                 return;
             }
-            if (event.data.startsWith("OFFER_REQUEST")) {
-            // The peer wants us to set up and then send an offer
-                if (!peer_connection)
-                    createCall(null).then (generateOffer);
-            }
-            else {
-                // Handle incoming JSON SDP and ICE messages
-                try {
-                    msg = JSON.parse(event.data);
-                } catch (e) {
-                    if (e instanceof SyntaxError) {
-                        handleIncomingError("Error parsing incoming JSON: " + event.data);
-                    } else {
-                        handleIncomingError("Unknown error parsing response: " + event.data);
-                    }
-                    return;
-                }
-
-                // Incoming JSON signals the beginning of a call
-                if (!peer_connection)
-                    createCall(msg);
-
-                if (msg.sdp != null) {
-                    onIncomingSDP(msg.sdp);
-                } else if (msg.ice != null) {
-                    onIncomingICE(msg.ice);
+            // Handle incoming JSON SDP and ICE messages
+            try {
+                msg = JSON.parse(event.data);
+            } catch (e) {
+                if (e instanceof SyntaxError) {
+                    handleIncomingError("Error parsing incoming JSON: " + event.data);
                 } else {
-                    handleIncomingError("Unknown incoming JSON: " + msg);
+                    handleIncomingError("Unknown error parsing response: " + event.data);
                 }
+                return;
+            }
+
+            // Incoming JSON signals the beginning of a call
+            if (!peer_connection)
+                createCall(msg);
+
+            if (msg.sdp != null) {
+                onIncomingSDP(msg.sdp);
+            } else if (msg.ice != null) {
+                onIncomingICE(msg.ice);
+            } else {
+                handleIncomingError("Unknown incoming JSON: " + msg);
             }
     }
 }