|
- using JT1078.Gateway.Abstractions;
- using JT1078.Gateway.Sessions;
- using JT1078.Hls;
- using Microsoft.Extensions.Hosting;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
-
- namespace JT1078.Gateway.TestNormalHosting.Services
- {
- public class JT1078HlsNormalMsgHostedService : BackgroundService
- {
- private IJT1078PackageConsumer PackageConsumer;
- private JT1078HttpSessionManager HttpSessionManager;
- private M3U8FileManage M3U8FileManage;
- public JT1078HlsNormalMsgHostedService(
- M3U8FileManage M3U8FileManage,
- JT1078HttpSessionManager httpSessionManager,
- IJT1078PackageConsumer packageConsumer)
- {
- PackageConsumer = packageConsumer;
- HttpSessionManager = httpSessionManager;
- this.M3U8FileManage = M3U8FileManage;
- }
- protected override Task ExecuteAsync(CancellationToken stoppingToken)
- {
- PackageConsumer.OnMessage((Message) =>
- {
- var merge = JT1078.Protocol.JT1078Serializer.Merge(Message.Data);
- if (merge != null)
- {
- var hasHttpSessionn = HttpSessionManager.GetAllHttpContextBySimAndChannelNo(merge.SIM, merge.LogicChannelNumber);
- if (hasHttpSessionn.Count>0)
- {
- M3U8FileManage.CreateTsData(merge);
- }
- else {
- M3U8FileManage.Clear(merge.SIM, merge.LogicChannelNumber);
- }
- }
- });
- return Task.CompletedTask;
- }
- }
- }
|