Make viewers counter period configurable

This commit is contained in:
Alexandre Iooss 2020-09-29 18:44:32 +02:00
parent 12009b5875
commit 06542590e1
No known key found for this signature in database
GPG Key ID: 6C79278F3FCDCC02
5 changed files with 18 additions and 9 deletions

View File

@ -35,6 +35,7 @@ web:
hostname: localhost
favicon: https://www.crans.org/images/favicon.ico
widgetURL: https://example.com/
viewersCounterRefreshPeriod: 20000
# Configure WebRTC server
webrtc:

View File

@ -53,6 +53,7 @@ func loadConfiguration() {
viper.SetDefault("Web.Name", "Ghostream")
viper.SetDefault("Web.Hostname", "localhost")
viper.SetDefault("Web.Favicon", "/favicon.ico")
viper.SetDefault("Web.ViewersCounterRefreshPeriod", 20000)
viper.SetDefault("WebRTC.MinPortUDP", 10000)
viper.SetDefault("WebRTC.MaxPortUDP", 10005)
viper.SetDefault("WebRTC.STUNServers", []string{"stun:stun.l.google.com:19302"})

View File

@ -1,4 +1,5 @@
function refreshViewersCounter() {
// Refresh viewer count by pulling metric from server
function refreshViewersCounter(period) {
let xhr = new XMLHttpRequest()
xhr.open("GET", "/_stats/", true)
xhr.onload = function () {
@ -12,7 +13,7 @@ function refreshViewersCounter() {
}
xhr.send()
setTimeout(refreshViewersCounter, 20000)
setTimeout(() => {
refreshViewersCounter(period)
}, period)
}
refreshViewersCounter()

View File

@ -50,5 +50,10 @@
{{end}}
]
startPeerConnection()
// Wait a bit before pulling viewers counter for the first time
setTimeout(() => {
refreshViewersCounter({{.Cfg.ViewersCounterRefreshPeriod}})
}, 1000)
</script>
{{end}}

View File

@ -15,11 +15,12 @@ import (
// Options holds web package configuration
type Options struct {
ListenAddress string
Name string
Hostname string
Favicon string
WidgetURL string
ListenAddress string
Name string
Hostname string
Favicon string
WidgetURL string
ViewersCounterRefreshPeriod int
// Copied from WebRTC configuration
STUNServers []string