1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- // The MIT License (MIT)
- //
- // # Copyright (c) 2021 Winlin
- //
- // Permission is hereby granted, free of charge, to any person obtaining a copy of
- // this software and associated documentation files (the "Software"), to deal in
- // the Software without restriction, including without limitation the rights to
- // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- // the Software, and to permit persons to whom the Software is furnished to do so,
- // subject to the following conditions:
- //
- // The above copyright notice and this permission notice shall be included in all
- // copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- package live
- import (
- "context"
- "encoding/json"
- "net/http"
- "strings"
- "github.com/ossrs/go-oryx-lib/logger"
- )
- type statLive struct {
- Publishers struct {
- Expect int `json:"expect"`
- Alive int `json:"alive"`
- } `json:"publishers"`
- Subscribers struct {
- Expect int `json:"expect"`
- Alive int `json:"alive"`
- } `json:"subscribers"`
- PeerConnection interface{} `json:"random-pc"`
- }
- var gStatLive statLive
- func handleStat(ctx context.Context, mux *http.ServeMux, l string) {
- if strings.HasPrefix(l, ":") {
- l = "127.0.0.1" + l
- }
- logger.Tf(ctx, "Handle http://%v/api/v1/sb/live", l)
- mux.HandleFunc("/api/v1/sb/live", func(w http.ResponseWriter, r *http.Request) {
- res := &struct {
- Code int `json:"code"`
- Data interface{} `json:"data"`
- }{
- 0, &gStatLive,
- }
- b, err := json.Marshal(res)
- if err != nil {
- logger.Wf(ctx, "marshal %v err %+v", res, err)
- return
- }
- w.Write(b)
- })
- }
|