diff options
author | Joachim Bauch <bauch@struktur.de> | 2017-07-25 13:37:01 +0300 |
---|---|---|
committer | Joachim Bauch <bauch@struktur.de> | 2017-11-02 13:23:10 +0300 |
commit | 5cb56b565986acf6a133bdfe81cf41ee06763d53 (patch) | |
tree | 577e0b5a5ceec56b3c2368cfc312bfa7c985ac94 /js/signaling.js | |
parent | 6ee066ab0825517fb992cf9377e7b0fc46005827 (diff) |
Allow setting up multiple signaling servers.
Signed-off-by: Joachim Bauch <bauch@struktur.de>
Diffstat (limited to 'js/signaling.js')
-rw-r--r-- | js/signaling.js | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/js/signaling.js b/js/signaling.js index c47741fb1..098006423 100644 --- a/js/signaling.js +++ b/js/signaling.js @@ -439,8 +439,15 @@ }.bind(this)); }; - function StandaloneSignaling(settings, url) { + function StandaloneSignaling(settings, urls) { SignalingBase.prototype.constructor.apply(this, arguments); + if (typeof(urls) === "string") { + urls = [urls]; + } + // We can connect to any of the servers. + var idx = Math.floor(Math.random() * urls.length); + // TODO(jojo): Try other server if connection fails. + var url = urls[idx]; // Make sure we are using websocket urls. if (url.indexOf("https://") === 0) { url = "wss://" + url.substr(8); @@ -755,9 +762,9 @@ } else { settings = {}; } - var url = settings['server']; - if (url) { - return new StandaloneSignaling(settings, url); + var urls = settings['server']; + if (urls) { + return new StandaloneSignaling(settings, urls); } else { return new InternalSignaling(settings); } |