Пример #1
0
        public override Task <StartPlaybackReply> StartPlayback(StartPlaybackRequest request, ServerCallContext context)
        {
            if (request.IsDownload)
            {
                _eventSource?.FireDownloadRequestEvent(request, context);
            }
            else
            {
                _eventSource?.FirePlaybackRequestEvent(request, context);
            }

            return(base.StartPlayback(request, context));
        }
Пример #2
0
        public override Task <StartPlaybackReply> StartPlayback(StartPlaybackRequest request, ServerCallContext context)
        {
            try
            {
                logger.Debug("StartPlayback: request=" + request.ToString());
                _eventSource?.FilePlaybackRequestEvent(request, context);
                var reqeustProcessResult = _sipServiceDirector.BackVideoReq(request.Gbid, new int[] { request.Port }, request.Ipaddr, Convert.ToUInt64(request.BeginTime), Convert.ToUInt64(request.EndTime));
                reqeustProcessResult?.Wait(System.TimeSpan.FromSeconds(1));

                //get the response .
                var resReply = new StartPlaybackReply()
                {
                    Ipaddr = reqeustProcessResult.Result.Item1,
                    Port   = reqeustProcessResult.Result.Item2,
                    Hdr    = GetHeaderBySipHeader(reqeustProcessResult.Result.Item3),
                    Status = new Status()
                    {
                        Code = 200,
                        Msg  = "Request Successful!"
                    }
                };
                //add Video Session Alive
                Dictionary <string, DateTime> _Dictionary = new Dictionary <string, DateTime>();
                _Dictionary.Add(request.Gbid + ',' + resReply.Hdr.Sessionid, DateTime.Now);
                _sipServiceDirector.VideoSessionAlive.Add(_Dictionary);
                logger.Debug("StartPlayback: resReply=" + resReply.ToString());
                return(Task.FromResult(resReply));
            }
            catch (Exception ex)
            {
                logger.Error("Exception GRPC StartPlayback: " + ex.Message);
                var resReply = new StartPlaybackReply()
                {
                    Status = new Status()
                    {
                        Msg = ex.Message
                    }
                };
                return(Task.FromResult(resReply));
            }
        }
 internal void FirePlaybackRequestEvent(StartPlaybackRequest request, ServerCallContext context)
 {
     PlaybackRequesReceived?.Invoke(request, context);
 }
Пример #4
0
 public void FilePlaybackRequestEvent(StartPlaybackRequest request, ServerCallContext context)
 {
     PlaybackRequestReceived?.Invoke(request, context);
 }