|
|
|
@ -6,6 +6,7 @@
@@ -6,6 +6,7 @@
|
|
|
|
|
href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" |
|
|
|
|
rel="stylesheet" |
|
|
|
|
/> |
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> |
|
|
|
|
|
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script> |
|
|
|
|
|
|
|
|
@ -15,11 +16,13 @@
@@ -15,11 +16,13 @@
|
|
|
|
|
<script data-main="js/main" src="vendor/require.js"></script> |
|
|
|
|
</head> |
|
|
|
|
|
|
|
|
|
<div |
|
|
|
|
class="flex" |
|
|
|
|
> |
|
|
|
|
<div> |
|
|
|
|
<div class="flex"> |
|
|
|
|
<div class="w-4/6"> |
|
|
|
|
<video id="video" controls style="width: 100%;"></video> |
|
|
|
|
<div id="app"> |
|
|
|
|
{{ streamStatus }} |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<div class="w-2/6"> |
|
|
|
@ -31,7 +34,11 @@
@@ -31,7 +34,11 @@
|
|
|
|
|
<div data-bind="foreach: messages"> |
|
|
|
|
<div class="bg-white shadow-md rounded px-8 pt-6 pb-8 mb-4"> |
|
|
|
|
<div class="flex items-center"> |
|
|
|
|
<img data-bind="attr:{src: image}" class="w-10 h-10 rounded-full mr-4 border-black-500" style="padding: 5px; background-color:#ececec;" /> |
|
|
|
|
<img |
|
|
|
|
data-bind="attr:{src: image}" |
|
|
|
|
class="w-10 h-10 rounded-full mr-4 border-black-500" |
|
|
|
|
style="padding: 5px; background-color: #ececec;" |
|
|
|
|
/> |
|
|
|
|
|
|
|
|
|
<div class="text-sm"> |
|
|
|
|
<p class="text-700" data-bind="text:author"></p> |
|
|
|
@ -40,8 +47,6 @@
@@ -40,8 +47,6 @@
|
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
<form |
|
|
|
|
class="bg-white shadow-md rounded px-8 pt-6 pb-8 mb-4" |
|
|
|
@ -83,6 +88,7 @@
@@ -83,6 +88,7 @@
|
|
|
|
|
</div> |
|
|
|
|
</form> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
@ -116,3 +122,33 @@
@@ -116,3 +122,33 @@
|
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
|
var app = new Vue({ |
|
|
|
|
el: "#app", |
|
|
|
|
data: { |
|
|
|
|
streamStatus: "Hello Vue!", |
|
|
|
|
}, |
|
|
|
|
}); |
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
|
setInterval(getStatus, 5000); |
|
|
|
|
|
|
|
|
|
async function getStatus() { |
|
|
|
|
let url = "/status"; |
|
|
|
|
try { |
|
|
|
|
let response = await fetch(url); |
|
|
|
|
let status = await response.json(); // read response body and parse as JSON |
|
|
|
|
app.streamStatus = status.online |
|
|
|
|
? "Stream is online." |
|
|
|
|
: "Stream is offline."; |
|
|
|
|
|
|
|
|
|
} catch(e) { |
|
|
|
|
app.streamStatus = "Stream server is offline." |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
getStatus(); |
|
|
|
|
</script> |
|
|
|
|