(function (Arcast) { Arcast.getInfo = function () { return fetch("/api/v1/info") .then((res) => res.json()) .then((res) => res.data); }; Arcast.getBroadcastingChannel = function (id, onmessage) { var scheme = "wss"; if (window.location.protocol === "http:") { scheme = "ws"; } var ws = new WebSocket( `${scheme}://${window.location.host}/api/v1/broadcast/${id}` ); var channel = { opened: false, send: (message) => { ws.send(message); }, close: () => { ws.close(); }, }; ws.onmessage = (evt) => { if (typeof onmessage !== "function") { return; } onmessage(evt.data); }; ws.onclose = () => { ws.onmessage = null; ws.onclose = null; ws.onopen = null; channel.opened = false; }; ws.onopen = () => { channel.opened = true; }; return channel; }; })((window.Arcast = window.Arcast || {}));