87 lines
2.0 KiB
Go
87 lines
2.0 KiB
Go
package http
|
|
|
|
import (
|
|
"fmt"
|
|
"go-common/library/ecode"
|
|
bm "go-common/library/net/http/blademaster"
|
|
"go-common/library/net/metadata"
|
|
"strconv"
|
|
)
|
|
|
|
// cutStream 切流, 内部调用
|
|
func cutStream(c *bm.Context) {
|
|
// roomid 必须
|
|
params := c.Request.URL.Query()
|
|
room := params.Get("room_id")
|
|
cutTime := params.Get("cut_time")
|
|
|
|
c.Set("input_params", params)
|
|
|
|
// 验证传参数
|
|
roomID, err := strconv.ParseInt(room, 10, 64)
|
|
if err != nil || roomID <= 0 {
|
|
c.Set("output_data", "roomid is not right")
|
|
c.JSONMap(map[string]interface{}{"message": "roomid is not right"}, ecode.RequestErr)
|
|
c.Abort()
|
|
return
|
|
}
|
|
|
|
// 默认切流时间为1s,可以传入-1
|
|
ct, err := strconv.ParseInt(cutTime, 10, 64)
|
|
if err != nil || ct == 0 {
|
|
ct = 1
|
|
}
|
|
|
|
srv.StreamCut(c, roomID, ct, 0)
|
|
|
|
c.Set("output_data", "ok")
|
|
c.JSONMap(map[string]interface{}{"data": map[string]int{}}, nil)
|
|
}
|
|
|
|
// cutStreamByExt 外部调用
|
|
func cutStreamByMobile(c *bm.Context) {
|
|
// roomid 必须
|
|
params := c.Request.URL.Query()
|
|
room := params.Get("room_id")
|
|
cutTime := params.Get("cut_time")
|
|
|
|
c.Set("input_params", params)
|
|
|
|
// 验证传参数
|
|
roomID, err := strconv.ParseInt(room, 10, 64)
|
|
if err != nil || roomID <= 0 {
|
|
c.Set("output_data", "roomid is not right")
|
|
c.JSONMap(map[string]interface{}{"message": "roomid is not right"}, ecode.RequestErr)
|
|
c.Abort()
|
|
return
|
|
}
|
|
|
|
// 默认切流时间为1s,可以传入-1
|
|
ct, err := strconv.ParseInt(cutTime, 10, 64)
|
|
if err != nil || ct == 0 {
|
|
ct = 1
|
|
}
|
|
|
|
uid, ok := metadata.Value(c, metadata.Mid).(int64)
|
|
//uid = 19148701
|
|
//ok = true
|
|
if !ok {
|
|
c.Set("output_data", "未登陆")
|
|
c.JSONMap(map[string]interface{}{"message": fmt.Sprintf("未登陆")}, ecode.RequestErr)
|
|
c.Abort()
|
|
return
|
|
}
|
|
|
|
err = srv.StreamCut(c, roomID, ct, uid)
|
|
|
|
if err != nil {
|
|
c.Set("output_data", err.Error())
|
|
c.JSONMap(map[string]interface{}{"message": err.Error()}, ecode.RequestErr)
|
|
c.Abort()
|
|
return
|
|
}
|
|
|
|
c.Set("output_data", "ok")
|
|
c.JSONMap(map[string]interface{}{"data": map[string]int{}}, nil)
|
|
}
|