From 1f5b223e33a0354d8757b7370557e6a117d190fd Mon Sep 17 00:00:00 2001 From: "SmallChi(Koike)" <564952747@qq.com> Date: Wed, 25 May 2022 18:44:31 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9webapi=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=B7=AF=E7=94=B1=202.=E8=B0=83=E6=95=B4=E6=B5=8B=E8=AF=95demo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .../Jobs/Up2013Service.cs | 8 +-- .../Services/ProccessPackageService.cs | 10 +-- .../Services/Up2011Service.cs | 10 +-- .../Services/Up2013Service.cs | 10 +-- .../Services/Up2019Service.cs | 10 +-- .../Program.cs | 3 +- simples/JT808.Gateway.SimpleServer/Program.cs | 3 +- src/JT808.Gateway.Kafka/JT808MsgConsumer.cs | 2 +- .../JT808MsgReplyConsumer.cs | 2 +- .../JT808MsgReplyLoggingConsumer.cs | 2 +- .../JT808SessionConsumer.cs | 2 +- .../Customs/JT808HttpClientExt.cs | 4 +- .../Jobs/CallHttpClientJob.cs | 4 +- .../JT808.Gateway.NormalHosting/Program.cs | 4 ++ .../appsettings.json | 3 +- .../JT808.Gateway.QueueHosting.csproj | 2 +- .../JT808.Gateway.QueueHosting/Program.cs | 40 +++++++++++- .../appsettings.json | 8 +++ .../JT808.Gateway.Test.csproj | 1 - .../JT808HttpClient.cs | 65 ++++++------------- .../JT808HttpClientExtensions.cs | 12 +++- src/JT808.Gateway/JT808UdpServer.cs | 6 +- src/JT808.Gateway/JT808WebApi.cs | 19 +++--- 24 files changed, 134 insertions(+), 97 deletions(-) diff --git a/.gitignore b/.gitignore index c962b4b..53251a9 100644 --- a/.gitignore +++ b/.gitignore @@ -332,3 +332,4 @@ ASALocalRun/ /src/JT808.DotNetty.Admin/tools/protoc-gen-grpc-web-1.0.3-windows-x86_64.exe /src/JT808.Gateway.Benchmark/JT808.Gateway.CleintBenchmark/.config/dotnet-tools.json /src/JT808.Gateway.Tests/JT808.Gateway.NormalHosting/wwwroot/logs/JT808.Gateway +/src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/wwwroot/logs/JT808.Gateway diff --git a/simples/JT808.Gateway.NBIotSimpleClient/Jobs/Up2013Service.cs b/simples/JT808.Gateway.NBIotSimpleClient/Jobs/Up2013Service.cs index f42fad2..822a2ea 100644 --- a/simples/JT808.Gateway.NBIotSimpleClient/Jobs/Up2013Service.cs +++ b/simples/JT808.Gateway.NBIotSimpleClient/Jobs/Up2013Service.cs @@ -35,7 +35,7 @@ namespace JT808.Gateway.NBIotSimpleClient.Jobs var address = Dns.GetHostAddresses("jtt808.ctwing.cn"); JT808TcpClient client1 = await jT808TcpClientFactory.Create(new JT808DeviceConfig(sim, address[0].ToString(), 6001, version:JT808Version.JTT2019), cancellationToken); await Task.Delay(1000); - var p1 = JT808MsgId.终端注册.Create(sim, new JT808_0x0100() + var p1 = JT808MsgId._0x0100.Create(sim, new JT808_0x0100() { PlateNo = "粤A12346", PlateColor = 0, @@ -62,7 +62,7 @@ namespace JT808.Gateway.NBIotSimpleClient.Jobs if (!string.IsNullOrEmpty(deviceInfo.Code)) { //2.终端鉴权 - await client1.SendAsync(JT808MsgId.终端鉴权.Create(sim, new JT808_0x0102() + await client1.SendAsync(JT808MsgId._0x0102.Create(sim, new JT808_0x0102() { Code= deviceInfo.Code, })); @@ -80,7 +80,7 @@ namespace JT808.Gateway.NBIotSimpleClient.Jobs { if (deviceInfo.Successed) { - await client1.SendAsync(JT808MsgId.位置信息汇报.Create(sim, new JT808_0x0200() + await client1.SendAsync(JT808MsgId._0x0200.Create(sim, new JT808_0x0200() { Lat = 110000 + i, Lng = 100000 + i, @@ -94,7 +94,7 @@ namespace JT808.Gateway.NBIotSimpleClient.Jobs } } i++; - await Task.Delay(5000); + await Task.Delay(5000, cancellationToken); } }, cancellationToken); } diff --git a/simples/JT808.Gateway.NBIotSimpleClient/Services/ProccessPackageService.cs b/simples/JT808.Gateway.NBIotSimpleClient/Services/ProccessPackageService.cs index 2442e93..d00ee7f 100644 --- a/simples/JT808.Gateway.NBIotSimpleClient/Services/ProccessPackageService.cs +++ b/simples/JT808.Gateway.NBIotSimpleClient/Services/ProccessPackageService.cs @@ -46,7 +46,7 @@ namespace JT808.Gateway.NBIotSimpleClient.Services { foreach(var package in ReceviePackageService.BlockingCollection.GetConsumingEnumerable(cancellationToken)) { - if(package.Header.MsgId == JT808MsgId.终端注册应答.ToUInt16Value()) + if(package.Header.MsgId == JT808MsgId._0x8100.ToUInt16Value()) { if (package.Bodies is JT808_0x8100 body) { @@ -57,13 +57,13 @@ namespace JT808.Gateway.NBIotSimpleClient.Services Logger.LogInformation($"{package.Header.TerminalPhoneNo}-{body.Code}-success"); } } - else if (package.Header.MsgId == JT808MsgId.平台通用应答.ToValue()) + else if (package.Header.MsgId == JT808MsgId._0x8001.ToValue()) { if(package.Bodies is JT808_0x8001 body) { - if(body.AckMsgId== JT808MsgId.终端鉴权.ToUInt16Value()) + if(body.AckMsgId== JT808MsgId._0x0102.ToUInt16Value()) { - if(body.JT808PlatformResult== JT808PlatformResult.成功) + if(body.JT808PlatformResult== JT808PlatformResult.succeed) { if (DeviceInfoService.DeviceInfos.TryGetValue(package.Header.TerminalPhoneNo, out var deviceInfo)) { @@ -81,7 +81,7 @@ namespace JT808.Gateway.NBIotSimpleClient.Services { } - }, cancellationToken); + }); return Task.CompletedTask; } diff --git a/simples/JT808.Gateway.SimpleClient/Services/Up2011Service.cs b/simples/JT808.Gateway.SimpleClient/Services/Up2011Service.cs index 9342c8c..87806c1 100644 --- a/simples/JT808.Gateway.SimpleClient/Services/Up2011Service.cs +++ b/simples/JT808.Gateway.SimpleClient/Services/Up2011Service.cs @@ -26,7 +26,7 @@ namespace JT808.Gateway.SimpleClient.Services JT808TcpClient client1 = await jT808TcpClientFactory.Create(new JT808DeviceConfig(sim, "127.0.0.1", 808,version: JT808Version.JTT2011), cancellationToken); await Task.Delay(2000); //1.终端注册 - await client1.SendAsync(JT808MsgId.终端注册.Create(sim, new JT808_0x0100() + await client1.SendAsync(JT808MsgId._0x0100.Create(sim, new JT808_0x0100() { PlateNo = "粤A12345", PlateColor = 2, @@ -37,7 +37,7 @@ namespace JT808.Gateway.SimpleClient.Services TerminalModel = "Koike001" })); //2.终端鉴权 - await client1.SendAsync(JT808MsgId.终端鉴权.Create(sim, new JT808_0x0102() + await client1.SendAsync(JT808MsgId._0x0102.Create(sim, new JT808_0x0102() { Code = "1234" })); @@ -46,7 +46,7 @@ namespace JT808.Gateway.SimpleClient.Services { var i = 0; //3.每5秒发一次 - await client1.SendAsync(JT808MsgId.位置信息汇报.Create(sim, new JT808_0x0200() + await client1.SendAsync(JT808MsgId._0x0200.Create(sim, new JT808_0x0200() { Lat = 110000 + i, Lng = 100000 + i, @@ -58,9 +58,9 @@ namespace JT808.Gateway.SimpleClient.Services StatusFlag = 10 })); i++; - await Task.Delay(5000); + await Task.Delay(5000, cancellationToken); } - }, cancellationToken); + }); } public Task StopAsync(CancellationToken cancellationToken) diff --git a/simples/JT808.Gateway.SimpleClient/Services/Up2013Service.cs b/simples/JT808.Gateway.SimpleClient/Services/Up2013Service.cs index 37b9766..e77c333 100644 --- a/simples/JT808.Gateway.SimpleClient/Services/Up2013Service.cs +++ b/simples/JT808.Gateway.SimpleClient/Services/Up2013Service.cs @@ -26,7 +26,7 @@ namespace JT808.Gateway.SimpleClient.Services JT808TcpClient client1 = await jT808TcpClientFactory.Create(new JT808DeviceConfig(sim, "127.0.0.1", 808,version: JT808Version.JTT2013), cancellationToken); await Task.Delay(2000); //1.终端注册 - await client1.SendAsync(JT808MsgId.终端注册.Create(sim, new JT808_0x0100() + await client1.SendAsync(JT808MsgId._0x0100.Create(sim, new JT808_0x0100() { PlateNo = "粤A12345", PlateColor = 2, @@ -37,7 +37,7 @@ namespace JT808.Gateway.SimpleClient.Services TerminalModel = "Koike001" })); //2.终端鉴权 - await client1.SendAsync(JT808MsgId.终端鉴权.Create(sim, new JT808_0x0102() + await client1.SendAsync(JT808MsgId._0x0102.Create(sim, new JT808_0x0102() { Code = "1234" })); @@ -46,7 +46,7 @@ namespace JT808.Gateway.SimpleClient.Services { var i = 0; //3.每5秒发一次 - await client1.SendAsync(JT808MsgId.位置信息汇报.Create(sim, new JT808_0x0200() + await client1.SendAsync(JT808MsgId._0x0200.Create(sim, new JT808_0x0200() { Lat = 110000 + i, Lng = 100000 + i, @@ -58,9 +58,9 @@ namespace JT808.Gateway.SimpleClient.Services StatusFlag = 10 })); i++; - await Task.Delay(5000); + await Task.Delay(5000, cancellationToken); } - }, cancellationToken); + }); } public Task StopAsync(CancellationToken cancellationToken) diff --git a/simples/JT808.Gateway.SimpleClient/Services/Up2019Service.cs b/simples/JT808.Gateway.SimpleClient/Services/Up2019Service.cs index 3d8691a..f8ef568 100644 --- a/simples/JT808.Gateway.SimpleClient/Services/Up2019Service.cs +++ b/simples/JT808.Gateway.SimpleClient/Services/Up2019Service.cs @@ -26,7 +26,7 @@ namespace JT808.Gateway.SimpleClient.Services JT808TcpClient client1 = await jT808TcpClientFactory.Create(new JT808DeviceConfig(sim, "127.0.0.1", 808, version:JT808Version.JTT2019), cancellationToken); await Task.Delay(2000); //1.终端注册 - await client1.SendAsync(JT808MsgId.终端注册.Create2019(sim, new JT808_0x0100() + await client1.SendAsync(JT808MsgId._0x0100.Create2019(sim, new JT808_0x0100() { PlateNo = "粤A12346", PlateColor = 2, @@ -37,7 +37,7 @@ namespace JT808.Gateway.SimpleClient.Services TerminalModel = "Koike002" })); //2.终端鉴权 - await client1.SendAsync(JT808MsgId.终端鉴权.Create2019(sim, new JT808_0x0102() + await client1.SendAsync(JT808MsgId._0x0102.Create2019(sim, new JT808_0x0102() { Code = "6666", IMEI="123456", @@ -49,7 +49,7 @@ namespace JT808.Gateway.SimpleClient.Services { var i = 0; //3.每5秒发一次 - await client1.SendAsync(JT808MsgId.位置信息汇报.Create2019(sim, new JT808_0x0200() + await client1.SendAsync(JT808MsgId._0x0200.Create2019(sim, new JT808_0x0200() { Lat = 110000 + i, Lng = 100000 + i, @@ -61,9 +61,9 @@ namespace JT808.Gateway.SimpleClient.Services StatusFlag = 10 })); i++; - await Task.Delay(5000); + await Task.Delay(5000, cancellationToken); } - }, cancellationToken); + }); } public Task StopAsync(CancellationToken cancellationToken) diff --git a/simples/JT808.Gateway.SimpleQueueServer/Program.cs b/simples/JT808.Gateway.SimpleQueueServer/Program.cs index 1e7a54e..1d7281f 100644 --- a/simples/JT808.Gateway.SimpleQueueServer/Program.cs +++ b/simples/JT808.Gateway.SimpleQueueServer/Program.cs @@ -34,8 +34,7 @@ namespace JT808.Gateway.SimpleQueueServer .AddServerKafkaMsgReplyConsumer(hostContext.Configuration) .AddServerKafkaSessionProducer(hostContext.Configuration) .AddTcp() - .AddUdp() - .AddHttp(); + .AddUdp(); }); await serverHostBuilder.RunConsoleAsync(); diff --git a/simples/JT808.Gateway.SimpleServer/Program.cs b/simples/JT808.Gateway.SimpleServer/Program.cs index 530d3c4..2cc89c1 100644 --- a/simples/JT808.Gateway.SimpleServer/Program.cs +++ b/simples/JT808.Gateway.SimpleServer/Program.cs @@ -40,7 +40,7 @@ namespace JT808.Gateway.SimpleServer services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); - services.AddJT808Configure() + services.AddJT808Configure() .AddGateway(hostContext.Configuration) .AddMessageHandler() .AddMsgLogging() @@ -48,7 +48,6 @@ namespace JT808.Gateway.SimpleServer .AddTransmit(hostContext.Configuration) .AddTcp() .AddUdp() - .AddHttp() .Builder(); }); diff --git a/src/JT808.Gateway.Kafka/JT808MsgConsumer.cs b/src/JT808.Gateway.Kafka/JT808MsgConsumer.cs index 5eed300..610a619 100644 --- a/src/JT808.Gateway.Kafka/JT808MsgConsumer.cs +++ b/src/JT808.Gateway.Kafka/JT808MsgConsumer.cs @@ -62,7 +62,7 @@ namespace JT808.Gateway.Kafka logger.LogError(ex, TopicName); } } - }, Cts.Token); + }); } public void Subscribe() { diff --git a/src/JT808.Gateway.Kafka/JT808MsgReplyConsumer.cs b/src/JT808.Gateway.Kafka/JT808MsgReplyConsumer.cs index 7b500e7..d424325 100644 --- a/src/JT808.Gateway.Kafka/JT808MsgReplyConsumer.cs +++ b/src/JT808.Gateway.Kafka/JT808MsgReplyConsumer.cs @@ -61,7 +61,7 @@ namespace JT808.Gateway.Kafka logger.LogError(ex, TopicName); } } - }, Cts.Token); + }); } public void Subscribe() diff --git a/src/JT808.Gateway.Kafka/JT808MsgReplyLoggingConsumer.cs b/src/JT808.Gateway.Kafka/JT808MsgReplyLoggingConsumer.cs index 93f74b8..51afc60 100644 --- a/src/JT808.Gateway.Kafka/JT808MsgReplyLoggingConsumer.cs +++ b/src/JT808.Gateway.Kafka/JT808MsgReplyLoggingConsumer.cs @@ -61,7 +61,7 @@ namespace JT808.Gateway.Kafka logger.LogError(ex, TopicName); } } - }, Cts.Token); + }); } public void Subscribe() diff --git a/src/JT808.Gateway.Kafka/JT808SessionConsumer.cs b/src/JT808.Gateway.Kafka/JT808SessionConsumer.cs index 97d56dd..40cb534 100644 --- a/src/JT808.Gateway.Kafka/JT808SessionConsumer.cs +++ b/src/JT808.Gateway.Kafka/JT808SessionConsumer.cs @@ -62,7 +62,7 @@ namespace JT808.Gateway.Kafka logger.LogError(ex, TopicName); } } - }, Cts.Token); + }); } public void Subscribe() diff --git a/src/JT808.Gateway.Tests/JT808.Gateway.NormalHosting/Customs/JT808HttpClientExt.cs b/src/JT808.Gateway.Tests/JT808.Gateway.NormalHosting/Customs/JT808HttpClientExt.cs index e60bee7..8507d73 100644 --- a/src/JT808.Gateway.Tests/JT808.Gateway.NormalHosting/Customs/JT808HttpClientExt.cs +++ b/src/JT808.Gateway.Tests/JT808.Gateway.NormalHosting/Customs/JT808HttpClientExt.cs @@ -1,6 +1,7 @@ using JT808.Gateway.Abstractions.Dtos; using JT808.Gateway.WebApiClientTool; using System.Net.Http; +using System.Net.Http.Json; using System.Text.Json; using System.Threading.Tasks; @@ -22,8 +23,7 @@ namespace JT808.Gateway.NormalHosting.Customs var request = new HttpRequestMessage(HttpMethod.Get, index1); var response = await HttpClient.SendAsync(request); response.EnsureSuccessStatusCode(); - var data = await response.Content.ReadAsStreamAsync(); - var value = await JsonSerializer.DeserializeAsync>(data); + var value = await response.Content.ReadFromJsonAsync>(); return value; } } diff --git a/src/JT808.Gateway.Tests/JT808.Gateway.NormalHosting/Jobs/CallHttpClientJob.cs b/src/JT808.Gateway.Tests/JT808.Gateway.NormalHosting/Jobs/CallHttpClientJob.cs index c87b8d6..b4c069f 100644 --- a/src/JT808.Gateway.Tests/JT808.Gateway.NormalHosting/Jobs/CallHttpClientJob.cs +++ b/src/JT808.Gateway.Tests/JT808.Gateway.NormalHosting/Jobs/CallHttpClientJob.cs @@ -41,8 +41,8 @@ namespace JT808.Gateway.NormalHosting.Jobs HexData= "7E02000026123456789012007D02000000010000000200BA7F0E07E4F11C0028003C00001810151010100104000000640202007D01137E" }); Logger.LogInformation($"[GetIndex Ext]:{JsonSerializer.Serialize(result1)}"); - Logger.LogInformation($"[GetTcpAtomicCounter]:{JsonSerializer.Serialize(result2)}"); - Logger.LogInformation($"[GetTcpSessionAll]:{JsonSerializer.Serialize(result3)}"); + Logger.LogInformation($"[GetTcpSessionAll]:{JsonSerializer.Serialize(result2)}"); + Logger.LogInformation($"[UnificationSend]:{JsonSerializer.Serialize(result3)}"); Thread.Sleep(3000); } }, cancellationToken); diff --git a/src/JT808.Gateway.Tests/JT808.Gateway.NormalHosting/Program.cs b/src/JT808.Gateway.Tests/JT808.Gateway.NormalHosting/Program.cs index f57fecf..8e3c76f 100644 --- a/src/JT808.Gateway.Tests/JT808.Gateway.NormalHosting/Program.cs +++ b/src/JT808.Gateway.Tests/JT808.Gateway.NormalHosting/Program.cs @@ -31,6 +31,8 @@ namespace JT808.Gateway.NormalHosting { static void Main(string[] args) { + //ref:https://andrewlock.net/exploring-dotnet-6-part-2-comparing-webapplicationbuilder-to-the-generic-host/ + //the new hotness in .NET 6. var builder = WebApplication.CreateBuilder(); builder.Host.ConfigureAppConfiguration((hostingContext, config) => { @@ -95,7 +97,9 @@ namespace JT808.Gateway.NormalHosting }); var app = builder.Build(); + app.UseRouting(); app.UseCors(); + app.MapControllers().RequireCors("jt808"); app.Run(); diff --git a/src/JT808.Gateway.Tests/JT808.Gateway.NormalHosting/appsettings.json b/src/JT808.Gateway.Tests/JT808.Gateway.NormalHosting/appsettings.json index 40d4925..bffc07b 100644 --- a/src/JT808.Gateway.Tests/JT808.Gateway.NormalHosting/appsettings.json +++ b/src/JT808.Gateway.Tests/JT808.Gateway.NormalHosting/appsettings.json @@ -3,7 +3,8 @@ "LogLevel": { "Default": "Debug", "Microsoft.AspNetCore.Mvc": "Information", - "Microsoft.AspNetCore.Server.Kestrel": "Information" + "Microsoft.AspNetCore.Server.Kestrel": "Information", + "Microsoft.Extensions.Http.*": "Information" } }, "JT808Configuration": { diff --git a/src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/JT808.Gateway.QueueHosting.csproj b/src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/JT808.Gateway.QueueHosting.csproj index 0a54e69..e43df5f 100644 --- a/src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/JT808.Gateway.QueueHosting.csproj +++ b/src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/JT808.Gateway.QueueHosting.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/Program.cs b/src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/Program.cs index d3df772..f635636 100644 --- a/src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/Program.cs +++ b/src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/Program.cs @@ -17,6 +17,9 @@ using JT808.Gateway.Kafka; using JT808.Gateway.WebApiClientTool; using JT808.Gateway.QueueHosting.Impl; using JT808.Gateway.MsgIdHandler; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using JT808.Gateway.Abstractions.Configurations; namespace JT808.Gateway.QueueHosting { @@ -24,7 +27,8 @@ namespace JT808.Gateway.QueueHosting { static async Task Main(string[] args) { - var serverHostBuilder = new HostBuilder() + + var serverHostBuilder = Host.CreateDefaultBuilder() .ConfigureAppConfiguration((hostingContext, config) => { config.SetBasePath(AppDomain.CurrentDomain.BaseDirectory) @@ -73,8 +77,42 @@ namespace JT808.Gateway.QueueHosting services.AddHostedService(); //客户端测试 services.AddHostedService(); + }) + .ConfigureWebHostDefaults(webBuilder => { + webBuilder.UseKestrel((app, ksOptions) => + { + //1.配置webapi端口监听 + var jT808Configuration = app.Configuration.GetSection(nameof(JT808Configuration)).Get(); + ksOptions.ListenAnyIP(jT808Configuration.WebApiPort); + }) + .UseStartup(); }); await serverHostBuilder.RunConsoleAsync(); } } + + public class Startup + { + public Startup(IConfiguration configuration) + { + Configuration = configuration; + } + + public IConfiguration Configuration { get; } + + public void ConfigureServices(IServiceCollection services) + { + services.AddControllers(); + } + + public void Configure(IApplicationBuilder app, IWebHostEnvironment env) + { + app.UseRouting(); + + app.UseEndpoints(endpoints => + { + endpoints.MapControllers(); + }); + } + } } diff --git a/src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/appsettings.json b/src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/appsettings.json index 9ea953f..0afc75f 100644 --- a/src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/appsettings.json +++ b/src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/appsettings.json @@ -1,4 +1,12 @@ { + "Logging": { + "LogLevel": { + "Default": "Debug", + "Microsoft.Extensions.Http.*": "Information", + "Microsoft.AspNetCore.Routing": "Warning", + "Microsoft.AspNetCore.*": "Warning" + } + }, "JT808Configuration": { "TcpPort": 808, "UdpPort": 808, diff --git a/src/JT808.Gateway.Tests/JT808.Gateway.Test/JT808.Gateway.Test.csproj b/src/JT808.Gateway.Tests/JT808.Gateway.Test/JT808.Gateway.Test.csproj index 08f5904..8620706 100644 --- a/src/JT808.Gateway.Tests/JT808.Gateway.Test/JT808.Gateway.Test.csproj +++ b/src/JT808.Gateway.Tests/JT808.Gateway.Test/JT808.Gateway.Test.csproj @@ -2,7 +2,6 @@ net6.0 - false diff --git a/src/JT808.Gateway.WebApiClientTool/JT808HttpClient.cs b/src/JT808.Gateway.WebApiClientTool/JT808HttpClient.cs index ad361dc..c5c5adb 100644 --- a/src/JT808.Gateway.WebApiClientTool/JT808HttpClient.cs +++ b/src/JT808.Gateway.WebApiClientTool/JT808HttpClient.cs @@ -4,6 +4,7 @@ using System; using System.Buffers.Text; using System.Collections.Generic; using System.Net.Http; +using System.Net.Http.Json; using System.Text; using System.Text.Json; using System.Threading.Tasks; @@ -36,12 +37,9 @@ namespace JT808.Gateway.WebApiClientTool /// public async ValueTask> UnificationSend(JT808UnificationSendRequestDto parameter) { - var request = new HttpRequestMessage(HttpMethod.Post, JT808GatewayConstants.JT808WebApiRouteTable.UnificationSend); - request.Content = new StringContent(JsonSerializer.Serialize(parameter)); - var response = await HttpClient.SendAsync(request); + var response = await HttpClient.PostAsJsonAsync(JT808GatewayConstants.JT808WebApiRouteTable.UnificationSend, parameter); response.EnsureSuccessStatusCode(); - var data = await response.Content.ReadAsStreamAsync(); - var value = await JsonSerializer.DeserializeAsync>(data); + var value = await response.Content.ReadFromJsonAsync>(); return value; } @@ -54,8 +52,7 @@ namespace JT808.Gateway.WebApiClientTool var request = new HttpRequestMessage(HttpMethod.Get, JT808GatewayConstants.JT808WebApiRouteTable.SessionTcpGetAll); var response = await HttpClient.SendAsync(request); response.EnsureSuccessStatusCode(); - var data = await response.Content.ReadAsStreamAsync(); - var value = await JsonSerializer.DeserializeAsync>>(data); + var value = await response.Content.ReadFromJsonAsync>>(); return value; } @@ -66,12 +63,9 @@ namespace JT808.Gateway.WebApiClientTool /// public async ValueTask> QueryTcpSessionByTerminalPhoneNo(JT808TerminalPhoneNoDto parameter) { - var request = new HttpRequestMessage(HttpMethod.Post, JT808GatewayConstants.JT808WebApiRouteTable.QueryTcpSessionByTerminalPhoneNo); - request.Content = new StringContent(JsonSerializer.Serialize(parameter)); - var response = await HttpClient.SendAsync(request); + var response = await HttpClient.PostAsJsonAsync(JT808GatewayConstants.JT808WebApiRouteTable.QueryTcpSessionByTerminalPhoneNo, parameter); response.EnsureSuccessStatusCode(); - var data = await response.Content.ReadAsStreamAsync(); - var value = await JsonSerializer.DeserializeAsync>(data); + var value = await response.Content.ReadFromJsonAsync>(); return value; } @@ -82,12 +76,9 @@ namespace JT808.Gateway.WebApiClientTool /// public async ValueTask> RemoveTcpByTerminalPhoneNo(JT808TerminalPhoneNoDto parameter) { - var request = new HttpRequestMessage(HttpMethod.Post, JT808GatewayConstants.JT808WebApiRouteTable.SessionRemoveByTerminalPhoneNo); - request.Content = new StringContent(JsonSerializer.Serialize(parameter)); - var response = await HttpClient.SendAsync(request); + var response = await HttpClient.PostAsJsonAsync(JT808GatewayConstants.JT808WebApiRouteTable.SessionRemoveByTerminalPhoneNo, parameter); response.EnsureSuccessStatusCode(); - var data = await response.Content.ReadAsStreamAsync(); - var value = await JsonSerializer.DeserializeAsync>(data); + var value = await response.Content.ReadFromJsonAsync>(); return value; } @@ -97,11 +88,9 @@ namespace JT808.Gateway.WebApiClientTool /// public async ValueTask>> GetUdpSessionAll() { - var request = new HttpRequestMessage(HttpMethod.Get, JT808GatewayConstants.JT808WebApiRouteTable.SessionUdpGetAll); - var response = await HttpClient.SendAsync(request); + var response = await HttpClient.GetAsync(JT808GatewayConstants.JT808WebApiRouteTable.SessionUdpGetAll); response.EnsureSuccessStatusCode(); - var data = await response.Content.ReadAsStreamAsync(); - var value = await JsonSerializer.DeserializeAsync>>(data); + var value = await response.Content.ReadFromJsonAsync>>(); return value; } @@ -112,12 +101,9 @@ namespace JT808.Gateway.WebApiClientTool /// public async ValueTask> QueryUdpSessionByTerminalPhoneNo(JT808TerminalPhoneNoDto parameter) { - var request = new HttpRequestMessage(HttpMethod.Post, JT808GatewayConstants.JT808WebApiRouteTable.QueryUdpSessionByTerminalPhoneNo); - request.Content = new StringContent(JsonSerializer.Serialize(parameter)); - var response = await HttpClient.SendAsync(request); + var response = await HttpClient.PostAsJsonAsync(JT808GatewayConstants.JT808WebApiRouteTable.QueryUdpSessionByTerminalPhoneNo, parameter); response.EnsureSuccessStatusCode(); - var data = await response.Content.ReadAsStreamAsync(); - var value = await JsonSerializer.DeserializeAsync>(data); + var value = await response.Content.ReadFromJsonAsync>(); return value; } @@ -128,12 +114,9 @@ namespace JT808.Gateway.WebApiClientTool /// public async ValueTask> RemoveUdpByTerminalPhoneNo(JT808TerminalPhoneNoDto parameter) { - var request = new HttpRequestMessage(HttpMethod.Post, JT808GatewayConstants.JT808WebApiRouteTable.RemoveUdpByTerminalPhoneNo); - request.Content = new StringContent(JsonSerializer.Serialize(parameter)); - var response = await HttpClient.SendAsync(request); + var response = await HttpClient.PostAsJsonAsync(JT808GatewayConstants.JT808WebApiRouteTable.RemoveUdpByTerminalPhoneNo,parameter); response.EnsureSuccessStatusCode(); - var data = await response.Content.ReadAsStreamAsync(); - var value = await JsonSerializer.DeserializeAsync>(data); + var value = await response.Content.ReadFromJsonAsync>(); return value; } @@ -144,12 +127,9 @@ namespace JT808.Gateway.WebApiClientTool /// public async ValueTask> BlacklistAdd(JT808TerminalPhoneNoDto parameter) { - var request = new HttpRequestMessage(HttpMethod.Post, JT808GatewayConstants.JT808WebApiRouteTable.BlacklistAdd); - request.Content = new StringContent(JsonSerializer.Serialize(parameter)); - var response = await HttpClient.SendAsync(request); + var response = await HttpClient.PostAsJsonAsync(JT808GatewayConstants.JT808WebApiRouteTable.BlacklistAdd, parameter); response.EnsureSuccessStatusCode(); - var data = await response.Content.ReadAsStreamAsync(); - var value = await JsonSerializer.DeserializeAsync>(data); + var value = await response.Content.ReadFromJsonAsync>(); return value; } @@ -160,12 +140,9 @@ namespace JT808.Gateway.WebApiClientTool /// public async ValueTask> BlacklistRemove(JT808TerminalPhoneNoDto parameter) { - var request = new HttpRequestMessage(HttpMethod.Post, JT808GatewayConstants.JT808WebApiRouteTable.BlacklistRemove); - request.Content = new StringContent(JsonSerializer.Serialize(parameter)); - var response = await HttpClient.SendAsync(request); + var response = await HttpClient.PostAsJsonAsync(JT808GatewayConstants.JT808WebApiRouteTable.BlacklistRemove, parameter); response.EnsureSuccessStatusCode(); - var data = await response.Content.ReadAsStreamAsync(); - var value = await JsonSerializer.DeserializeAsync>(data); + var value = await response.Content.ReadFromJsonAsync>(); return value; } @@ -175,11 +152,9 @@ namespace JT808.Gateway.WebApiClientTool /// public async ValueTask>> GetBlacklistAll() { - var request = new HttpRequestMessage(HttpMethod.Get, JT808GatewayConstants.JT808WebApiRouteTable.BlacklistGet); - var response = await HttpClient.SendAsync(request); + var response = await HttpClient.GetAsync(JT808GatewayConstants.JT808WebApiRouteTable.BlacklistGet); response.EnsureSuccessStatusCode(); - var data = await response.Content.ReadAsStreamAsync(); - var value = await JsonSerializer.DeserializeAsync>>(data); + var value = await response.Content.ReadFromJsonAsync>>(); return value; } } diff --git a/src/JT808.Gateway.WebApiClientTool/JT808HttpClientExtensions.cs b/src/JT808.Gateway.WebApiClientTool/JT808HttpClientExtensions.cs index e902b9e..21edc52 100644 --- a/src/JT808.Gateway.WebApiClientTool/JT808HttpClientExtensions.cs +++ b/src/JT808.Gateway.WebApiClientTool/JT808HttpClientExtensions.cs @@ -4,6 +4,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; +using System.Net.Http.Headers; using System.Text; namespace JT808.Gateway.WebApiClientTool @@ -26,6 +27,7 @@ namespace JT808.Gateway.WebApiClientTool serviceDescriptors.AddHttpClient("JT808WebApiClientTool", c => { c.DefaultRequestHeaders.Add("token", token); + c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); c.BaseAddress = webapiUri; c.Timeout = TimeSpan.FromSeconds(timeout); }) @@ -43,6 +45,7 @@ namespace JT808.Gateway.WebApiClientTool { serviceDescriptors.AddHttpClient("JT808WebApiClientTool", c => { + c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); c.DefaultRequestHeaders.Add("token", configuration.GetSection("JT808WebApiClientToolConfig:Token").Get()); c.BaseAddress = new Uri(configuration.GetSection("JT808WebApiClientToolConfig:Uri").Get()); c.Timeout = TimeSpan.FromSeconds(timeout); @@ -61,6 +64,7 @@ namespace JT808.Gateway.WebApiClientTool { jT808Builder.Services.AddHttpClient("JT808WebApiClientTool", c => { + c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); c.DefaultRequestHeaders.Add("token", configuration.GetSection("JT808WebApiClientToolConfig:Token").Get()); c.BaseAddress = new Uri(configuration.GetSection("JT808WebApiClientToolConfig:Uri").Get()); c.Timeout = TimeSpan.FromSeconds(timeout); @@ -80,6 +84,7 @@ namespace JT808.Gateway.WebApiClientTool { jT808Builder.Services.AddHttpClient("JT808WebApiClientTool", c => { + c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); c.DefaultRequestHeaders.Add("token", token); c.BaseAddress = webapiUri; c.Timeout = TimeSpan.FromSeconds(timeout); @@ -100,6 +105,7 @@ namespace JT808.Gateway.WebApiClientTool { serviceDescriptors.AddHttpClient("JT808WebApiClientTool", c => { + c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); c.DefaultRequestHeaders.Add("token", token); c.BaseAddress = webapiUri; c.Timeout = TimeSpan.FromSeconds(timeout); @@ -119,6 +125,7 @@ namespace JT808.Gateway.WebApiClientTool { serviceDescriptors.AddHttpClient("JT808WebApiClientTool", c => { + c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); c.DefaultRequestHeaders.Add("token", configuration.GetSection("JT808WebApiClientToolConfig:Token").Get()); c.BaseAddress = new Uri(configuration.GetSection("JT808WebApiClientToolConfig:Uri").Get()); c.Timeout = TimeSpan.FromSeconds(timeout); @@ -138,6 +145,7 @@ namespace JT808.Gateway.WebApiClientTool { jT808Builder.Services.AddHttpClient("JT808WebApiClientTool", c => { + c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); c.DefaultRequestHeaders.Add("token", configuration.GetSection("JT808WebApiClientToolConfig:Token").Get()); c.BaseAddress = new Uri(configuration.GetSection("JT808WebApiClientToolConfig:Uri").Get()); c.Timeout = TimeSpan.FromSeconds(timeout); @@ -158,11 +166,11 @@ namespace JT808.Gateway.WebApiClientTool { jT808Builder.Services.AddHttpClient("JT808WebApiClientTool", c => { + c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); c.DefaultRequestHeaders.Add("token", token); c.BaseAddress = webapiUri; c.Timeout = TimeSpan.FromSeconds(timeout); - }) - .AddTypedClient(); + }).AddTypedClient(); return jT808Builder; } } diff --git a/src/JT808.Gateway/JT808UdpServer.cs b/src/JT808.Gateway/JT808UdpServer.cs index 2112417..63d1499 100644 --- a/src/JT808.Gateway/JT808UdpServer.cs +++ b/src/JT808.Gateway/JT808UdpServer.cs @@ -80,9 +80,13 @@ namespace JT808.Gateway { Logger.LogError(ex, "Receive MessageFrom Async"); } + catch (SocketException ex) + { + //Logger.LogWarning(ex, $"Socket Error"); + } catch (Exception ex) { - Logger.LogError(ex, $"Received Bytes"); + Logger.LogError(ex, $"Service Error"); } finally { diff --git a/src/JT808.Gateway/JT808WebApi.cs b/src/JT808.Gateway/JT808WebApi.cs index 839119e..15222cc 100644 --- a/src/JT808.Gateway/JT808WebApi.cs +++ b/src/JT808.Gateway/JT808WebApi.cs @@ -84,7 +84,7 @@ namespace JT808.Gateway /// /// [HttpGet] - [Route("/Tcp/Session/GetAll")] + [Route("Tcp/Session/GetAll")] [JT808Token] public ActionResult>> SessionTcpGetAll() { @@ -116,7 +116,7 @@ namespace JT808.Gateway /// /// [HttpPost] - [Route("/Tcp/Session/QuerySessionByTerminalPhoneNo")] + [Route("Tcp/Session/QuerySessionByTerminalPhoneNo")] [JT808Token] public ActionResult> QueryTcpSessionByTerminalPhoneNo([FromBody] JT808TerminalPhoneNoDto parameter) { @@ -147,7 +147,7 @@ namespace JT808.Gateway /// /// [HttpPost] - [Route("/Tcp/Session/RemoveByTerminalPhoneNo")] + [Route("Tcp/Session/RemoveByTerminalPhoneNo")] [JT808Token] public ActionResult> SessionTcpRemoveByTerminalPhoneNo([FromBody] JT808TerminalPhoneNoDto parameter) { @@ -172,7 +172,7 @@ namespace JT808.Gateway /// /// [HttpGet] - [Route("/Udp/Session/GetAll")] + [Route("Udp/Session/GetAll")] [JT808Token] public ActionResult>> SessionUdpGetAll() { @@ -197,13 +197,14 @@ namespace JT808.Gateway } return resultDto; } + /// /// 会话服务-通过设备终端号查询对应会话 /// /// /// [HttpPost] - [Route("/Udp/Session/QuerySessionByTerminalPhoneNo")] + [Route("Udp/Session/QuerySessionByTerminalPhoneNo")] [JT808Token] public ActionResult> QueryUdpSessionByTerminalPhoneNo([FromBody] JT808TerminalPhoneNoDto parameter) { @@ -234,7 +235,7 @@ namespace JT808.Gateway /// /// [HttpPost] - [Route("/Udp/Session/RemoveByTerminalPhoneNo")] + [Route("Udp/Session/RemoveByTerminalPhoneNo")] [JT808Token] public ActionResult> SessionUdpRemoveByTerminalPhoneNo([FromBody] JT808TerminalPhoneNoDto parameter) { @@ -259,7 +260,7 @@ namespace JT808.Gateway /// /// [HttpPost] - [Route("/Blacklist/Add")] + [Route("Blacklist/Add")] [JT808Token] public ActionResult> BlacklistAdd([FromBody] JT808TerminalPhoneNoDto parameter) { @@ -284,7 +285,7 @@ namespace JT808.Gateway /// /// [HttpPost] - [Route("/Blacklist/Remove")] + [Route("Blacklist/Remove")] [JT808Token] public ActionResult> BlacklistRemove([FromBody] JT808TerminalPhoneNoDto parameter) { @@ -309,7 +310,7 @@ namespace JT808.Gateway /// /// [HttpGet] - [Route("/Blacklist/GetAll")] + [Route("Blacklist/GetAll")] [JT808Token] public ActionResult>> BlacklistGetAll() {