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 hostname: localhost
favicon: https://www.crans.org/images/favicon.ico favicon: https://www.crans.org/images/favicon.ico
widgetURL: https://example.com/ widgetURL: https://example.com/
viewersCounterRefreshPeriod: 20000
# Configure WebRTC server # Configure WebRTC server
webrtc: webrtc:

View File

@ -53,6 +53,7 @@ func loadConfiguration() {
viper.SetDefault("Web.Name", "Ghostream") viper.SetDefault("Web.Name", "Ghostream")
viper.SetDefault("Web.Hostname", "localhost") viper.SetDefault("Web.Hostname", "localhost")
viper.SetDefault("Web.Favicon", "/favicon.ico") viper.SetDefault("Web.Favicon", "/favicon.ico")
viper.SetDefault("Web.ViewersCounterRefreshPeriod", 20000)
viper.SetDefault("WebRTC.MinPortUDP", 10000) viper.SetDefault("WebRTC.MinPortUDP", 10000)
viper.SetDefault("WebRTC.MaxPortUDP", 10005) viper.SetDefault("WebRTC.MaxPortUDP", 10005)
viper.SetDefault("WebRTC.STUNServers", []string{"stun:stun.l.google.com:19302"}) 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() let xhr = new XMLHttpRequest()
xhr.open("GET", "/_stats/", true) xhr.open("GET", "/_stats/", true)
xhr.onload = function () { xhr.onload = function () {
@ -12,7 +13,7 @@ function refreshViewersCounter() {
} }
xhr.send() xhr.send()
setTimeout(refreshViewersCounter, 20000) setTimeout(() => {
refreshViewersCounter(period)
}, period)
} }
refreshViewersCounter()

View File

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

View File

@ -20,6 +20,7 @@ type Options struct {
Hostname string Hostname string
Favicon string Favicon string
WidgetURL string WidgetURL string
ViewersCounterRefreshPeriod int
// Copied from WebRTC configuration // Copied from WebRTC configuration
STUNServers []string STUNServers []string