Beispiel #1
0
        public async Task <IHttpActionResult> DefaultPlayDone()
        {
            var stream = await Request.Content.ReadAsStreamAsync();

            stream.Position = 0;
            CallbackResponseBase obj = null;

            using (var sr = new StreamReader(stream))
            {
                var json = await sr.ReadToEndAsync();

                obj = JsonConvert.DeserializeObject <CallbackResponseBase>(json);
            }
            stream.Close();
            BoardCastRoomModel liveRoomModel = await VhostService.GetLiveRoomByStreamName(obj.stream);

            if (liveRoomModel != null)
            {
                Scheduler.GetInstance().ProcessPostTask(liveRoomModel.PlayEndUrl, JsonConvert.SerializeObject(new
                {
                    Action     = 4,
                    AppName    = "live",
                    StreamName = obj.stream,
                }));
                LogHelper.Error("推送信息: " + obj);
            }
            return(Content(HttpStatusCode.OK, 0));
        }
Beispiel #2
0
        public async Task <IHttpActionResult> DefaultConnectVertify()
        {
            try
            {
                var stream = await Request.Content.ReadAsStreamAsync();

                stream.Position = 0;
                CallbackResponseBase callbackInfo = null;
                using (var sr = new StreamReader(stream))
                {
                    var json = await sr.ReadToEndAsync();

                    callbackInfo = JsonConvert.DeserializeObject <CallbackResponseBase>(json);
                }
                stream.Close();
                if (!string.IsNullOrWhiteSpace(callbackInfo.tcUrl))
                {
                    var pairs = callbackInfo.tcUrl.Split("?".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                    if (pairs.Length == 2)
                    {
                        string roomNum;
                        string userId;
                        int    action = 0; //1: publisher 2:player
                        if (TryVertifyTokenAuth(pairs[1], out roomNum, out userId, out action))
                        {
                            LogHelper.Error("连接鉴权成功: " + callbackInfo.tcUrl);
                            return(Content(HttpStatusCode.OK, 0));
                        }
                        else
                        {
                            LogHelper.Error("连接鉴权失败: " + callbackInfo.tcUrl);
                            return(Content(HttpStatusCode.Unauthorized, 401));
                        }
                    }
                    else
                    {
                        LogHelper.Error("连接鉴权错误: " + callbackInfo.tcUrl);
                        return(Content(HttpStatusCode.Forbidden, 403));
                    }
                }
                else
                {
                    LogHelper.Error("连接鉴权错误: " + callbackInfo.tcUrl);
                    return(Content(HttpStatusCode.Forbidden, 403));
                }
            }
            catch (Exception e)
            {
                var errorId = Guid.NewGuid().Str();
                LogHelper.Error(errorId, e);
                return(Content(HttpStatusCode.InternalServerError, 500));
            }
        }
Beispiel #3
0
        //获取 callback信息
        public static async Task <CallbackResponseBase> GetCallbackResponseFromStream(Stream stream)
        {
            CallbackResponseBase callbackInfo = null;

            stream.Position = 0;
            using (var sr = new StreamReader(stream))
            {
                var json = await sr.ReadToEndAsync();

                callbackInfo = JsonConvert.DeserializeObject <CallbackResponseBase>(json);
            }
            stream.Close();
            return(callbackInfo);
        }
Beispiel #4
0
        public async Task <IHttpActionResult> DefaultDisConnectVertify()
        {
            var stream = await Request.Content.ReadAsStreamAsync();

            stream.Position = 0;
            CallbackResponseBase callbackInfo = null;

            using (var sr = new StreamReader(stream))
            {
                var json = await sr.ReadToEndAsync();

                //callbackInfo = JsonConvert.DeserializeObject<CallbackResponseBase>(json);
            }
            stream.Close();
            return(Content(HttpStatusCode.OK, 0));
        }
Beispiel #5
0
        public async Task <IHttpActionResult> DvrCallback()
        {
            var stream = await Request.Content.ReadAsStreamAsync();

            stream.Position = 0;
            CallbackResponseBase obj = null;

            using (var sr = new StreamReader(stream))
            {
                var json = await sr.ReadToEndAsync();

                obj = JsonConvert.DeserializeObject <CallbackResponseBase>(json);
                LogHelper.Error($"获取Dvr回调 文件{obj.cwd} /{obj.file}");
            }
            stream.Close();
            StateService.SaveVodItem(obj);
            return(Content(HttpStatusCode.OK, 0));
        }
 public void SaveVodItem(CallbackResponseBase callbackResponseBase)
 {
     throw new NotImplementedException();
 }