Connected clients admin API (#217)
* Add support for ending the inbound stream. Closes #191 * Add a simple success response to API requests * Connected clients API with geo details * Post-rebase cleanup * Make setting and reading geo details separate operations to unblock and speed up * Rename file * Fire geoip api call behind goroutine * Add comment * Post-rebase fixes * Add support for the MaxMind GeoLite2 GeoIP database
This commit is contained in:
13
controllers/admin.go
Normal file
13
controllers/admin.go
Normal file
@@ -0,0 +1,13 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/owncast/owncast/core/rtmp"
|
||||
)
|
||||
|
||||
// DisconnectInboundConnection will force-disconnect an inbound stream
|
||||
func DisconnectInboundConnection(w http.ResponseWriter, r *http.Request) {
|
||||
rtmp.Disconnect()
|
||||
w.WriteHeader(http.StatusOK)
|
||||
}
|
||||
16
controllers/connectedClients.go
Normal file
16
controllers/connectedClients.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"github.com/owncast/owncast/core"
|
||||
)
|
||||
|
||||
// GetConnectedClients returns currently connected clients
|
||||
func GetConnectedClients(w http.ResponseWriter, r *http.Request) {
|
||||
clients := core.GetClients()
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
|
||||
json.NewEncoder(w).Encode(clients)
|
||||
}
|
||||
@@ -13,6 +13,7 @@ import (
|
||||
|
||||
"github.com/owncast/owncast/config"
|
||||
"github.com/owncast/owncast/core"
|
||||
"github.com/owncast/owncast/models"
|
||||
"github.com/owncast/owncast/router/middleware"
|
||||
"github.com/owncast/owncast/utils"
|
||||
)
|
||||
@@ -47,8 +48,8 @@ func IndexHandler(w http.ResponseWriter, r *http.Request) {
|
||||
if path.Ext(r.URL.Path) == ".m3u8" {
|
||||
middleware.DisableCache(w)
|
||||
|
||||
clientID := utils.GenerateClientIDFromRequest(r)
|
||||
core.SetClientActive(clientID)
|
||||
client := models.GenerateClientFromRequest(r)
|
||||
core.SetClientActive(client)
|
||||
}
|
||||
|
||||
// Set a cache control max-age header
|
||||
|
||||
Reference in New Issue
Block a user