|
|
@@ -35,12 +35,14 @@ namespace JT1078.DotNetty.TestHosting |
|
|
|
private readonly JT1078WSFlvDataService jT1078WSFlvDataService; |
|
|
|
private readonly FlvEncoder FlvEncoder = new FlvEncoder(); |
|
|
|
private readonly ILogger logger; |
|
|
|
private readonly ILogger flvEncodingLogger; |
|
|
|
public JT1078WSFlvHostedService( |
|
|
|
ILoggerFactory loggerFactory, |
|
|
|
JT1078WSFlvDataService jT1078WSFlvDataServic, |
|
|
|
JT1078HttpSessionManager jT1078HttpSessionManager) |
|
|
|
{ |
|
|
|
logger = loggerFactory.CreateLogger("JT1078WSFlvHostedService"); |
|
|
|
flvEncodingLogger = loggerFactory.CreateLogger("FlvEncoding"); |
|
|
|
this.jT1078WSFlvDataService = jT1078WSFlvDataServic; |
|
|
|
this.jT1078HttpSessionManager = jT1078HttpSessionManager; |
|
|
|
} |
|
|
@@ -51,9 +53,18 @@ namespace JT1078.DotNetty.TestHosting |
|
|
|
{ |
|
|
|
try |
|
|
|
{ |
|
|
|
Stopwatch stopwatch = new Stopwatch(); |
|
|
|
foreach (var item in jT1078WSFlvDataService.JT1078Packages.GetConsumingEnumerable()) |
|
|
|
{ |
|
|
|
stopwatch.Start(); |
|
|
|
var flv3 = FlvEncoder.CreateFlvFrame(item); |
|
|
|
stopwatch.Stop(); |
|
|
|
if(flvEncodingLogger.IsEnabled(LogLevel.Debug)) |
|
|
|
{ |
|
|
|
long times = stopwatch.ElapsedMilliseconds; |
|
|
|
flvEncodingLogger.LogDebug($"flv encoding {times.ToString()}ms"); |
|
|
|
} |
|
|
|
stopwatch.Reset(); |
|
|
|
if (flv3 == null) continue; |
|
|
|
if (jT1078HttpSessionManager.GetAll().Count() > 0) |
|
|
|
{ |
|
|
@@ -63,9 +74,16 @@ namespace JT1078.DotNetty.TestHosting |
|
|
|
{ |
|
|
|
exists.TryAdd(session.Channel.Id.AsShortText(), 0); |
|
|
|
string key = item.GetKey(); |
|
|
|
session.SendBinaryWebSocketAsync(FlvEncoder.GetFirstFlvFrame(key, flv3)); |
|
|
|
//ws-flv |
|
|
|
//session.SendBinaryWebSocketAsync(FlvEncoder.GetFirstFlvFrame(key, flv3)); |
|
|
|
//http-flv |
|
|
|
session.SendHttpFirstChunkAsync(FlvEncoder.GetFirstFlvFrame(key, flv3)); |
|
|
|
continue; |
|
|
|
} |
|
|
|
session.SendBinaryWebSocketAsync(flv3); |
|
|
|
//ws-flv |
|
|
|
//session.SendBinaryWebSocketAsync(flv3); |
|
|
|
//http-flv |
|
|
|
session.SendHttpOtherChunkAsync(flv3); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|