47 lines
983 B
JavaScript
47 lines
983 B
JavaScript
(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 || {}));
|