2021-11-23 17:49:40 +08:00
|
|
|
|
using DotNetCore.CAP;
|
|
|
|
|
|
using Furion;
|
|
|
|
|
|
using Furion.DependencyInjection;
|
|
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
|
|
using Microsoft.Extensions.Hosting;
|
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
|
using Serilog;
|
|
|
|
|
|
using Serilog.Events;
|
|
|
|
|
|
using SuperSocket;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Waste.SocketService
|
|
|
|
|
|
{
|
|
|
|
|
|
public class Program
|
|
|
|
|
|
{
|
|
|
|
|
|
public static void Main(string[] args)
|
|
|
|
|
|
{
|
|
|
|
|
|
CreateHostBuilder(args).Build().Run();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static IHostBuilder CreateHostBuilder(string[] args) =>
|
|
|
|
|
|
Host.CreateDefaultBuilder(args)
|
|
|
|
|
|
.UseWindowsService()
|
|
|
|
|
|
.Inject()
|
|
|
|
|
|
//<2F><>־ע<D6BE><D7A2>,<2C><>serilog<6F><67><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>־<EFBFBD><D6BE>¼<EFBFBD>ṩ<EFBFBD><E1B9A9><EFBFBD><EFBFBD>
|
|
|
|
|
|
.UseSerilogDefault(config =>
|
|
|
|
|
|
{
|
|
|
|
|
|
var filepath = App.Configuration["logfile"];
|
|
|
|
|
|
string date = DateTime.Now.ToString("yyyy-MM-dd");//<2F><>ʱ<EFBFBD>䴴<EFBFBD><E4B4B4><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
|
|
|
|
|
string outputTemplate = "{NewLine}<7D><>{Level:u3}<7D><>{Timestamp:yyyy-MM-dd HH:mm:ss.fff}" +
|
|
|
|
|
|
"{NewLine}#Msg#{Message:lj}" +
|
|
|
|
|
|
"{NewLine}#Pro #{Properties:j}" +
|
|
|
|
|
|
"{NewLine}#Exc#{Exception}" +
|
|
|
|
|
|
new string('-', 50);//<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
|
|
|
|
|
|
//1.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>restrictedToMinimumLevel<65><6C>LogEventLevel<65><6C><EFBFBD><EFBFBD>
|
|
|
|
|
|
config
|
|
|
|
|
|
.WriteTo.Seq("http://localhost:5341/")
|
|
|
|
|
|
|
|
|
|
|
|
//2.1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LogEventLevel.Debug <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
.WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Debug)//ɸѡ<C9B8><D1A1><EFBFBD><EFBFBD>
|
|
|
|
|
|
.WriteTo.File($"{filepath}/{date}/{LogEventLevel.Debug}.log",
|
|
|
|
|
|
outputTemplate: outputTemplate,
|
|
|
|
|
|
rollingInterval: RollingInterval.Day,//<2F><>־<EFBFBD><D6BE><EFBFBD>ձ<EFBFBD><D5B1>棬<EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ƺ<EFBFBD><C6BA>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>
|
|
|
|
|
|
encoding: Encoding.UTF8 // <20>ļ<EFBFBD><C4BC>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
//2.2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LogEventLevel.Error <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
.WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Error)//ɸѡ<C9B8><D1A1><EFBFBD><EFBFBD>
|
|
|
|
|
|
.WriteTo.File($"{filepath}/{date}/{LogEventLevel.Error}.log",
|
|
|
|
|
|
outputTemplate: outputTemplate,
|
|
|
|
|
|
rollingInterval: RollingInterval.Day,//<2F><>־<EFBFBD><D6BE><EFBFBD>ձ<EFBFBD><D5B1>棬<EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ƺ<EFBFBD><C6BA>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>
|
|
|
|
|
|
encoding: Encoding.UTF8 // <20>ļ<EFBFBD><C4BC>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
)
|
|
|
|
|
|
)
|
|
|
|
|
|
.WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Information)//ɸѡ<C9B8><D1A1><EFBFBD><EFBFBD>
|
|
|
|
|
|
.WriteTo.File($"{filepath}/{date}/{LogEventLevel.Information}.log",
|
|
|
|
|
|
outputTemplate: outputTemplate,
|
|
|
|
|
|
rollingInterval: RollingInterval.Day,//<2F><>־<EFBFBD><D6BE><EFBFBD>ձ<EFBFBD><D5B1>棬<EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ƺ<EFBFBD><C6BA>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>
|
|
|
|
|
|
encoding: Encoding.UTF8 // <20>ļ<EFBFBD><C4BC>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
)
|
|
|
|
|
|
)
|
|
|
|
|
|
.WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Fatal)//ɸѡ<C9B8><D1A1><EFBFBD><EFBFBD>
|
|
|
|
|
|
.WriteTo.File($"{filepath}/{date}/{LogEventLevel.Fatal}.log",
|
|
|
|
|
|
outputTemplate: outputTemplate,
|
|
|
|
|
|
rollingInterval: RollingInterval.Day,//<2F><>־<EFBFBD><D6BE><EFBFBD>ձ<EFBFBD><D5B1>棬<EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ƺ<EFBFBD><C6BA>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>
|
|
|
|
|
|
encoding: Encoding.UTF8 // <20>ļ<EFBFBD><C4BC>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
)
|
|
|
|
|
|
)
|
|
|
|
|
|
.WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Warning)//ɸѡ<C9B8><D1A1><EFBFBD><EFBFBD>
|
|
|
|
|
|
.WriteTo.File($"{filepath}/{date}/{LogEventLevel.Warning}.log",
|
|
|
|
|
|
outputTemplate: outputTemplate,
|
|
|
|
|
|
rollingInterval: RollingInterval.Day,//<2F><>־<EFBFBD><D6BE><EFBFBD>ձ<EFBFBD><D5B1>棬<EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ƺ<EFBFBD><C6BA>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>
|
|
|
|
|
|
encoding: Encoding.UTF8 // <20>ļ<EFBFBD><C4BC>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
)
|
|
|
|
|
|
)
|
|
|
|
|
|
;
|
|
|
|
|
|
})
|
|
|
|
|
|
.ConfigureServices((hostContext, services) =>
|
|
|
|
|
|
{
|
|
|
|
|
|
var configuration = hostContext.Configuration;
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>CAP֧<50><D6A7>
|
|
|
|
|
|
services.AddCap(x =>
|
|
|
|
|
|
{
|
|
|
|
|
|
x.DefaultGroupName = "jtsky.queue.waste";
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>rabbitmq֧<71><D6A7>
|
|
|
|
|
|
string port = configuration["RabbitmqSetting:Port"];
|
|
|
|
|
|
int p = Convert.ToInt32(port);
|
|
|
|
|
|
x.UseRabbitMQ(opt =>
|
|
|
|
|
|
{
|
|
|
|
|
|
opt.HostName = configuration["RabbitmqSetting:HostName"]; //<2F><><EFBFBD><EFBFBD>ip<69><70>ַ
|
|
|
|
|
|
opt.Port = p;//<2F><><EFBFBD>ö˿<C3B6>
|
|
|
|
|
|
opt.UserName = configuration["RabbitmqSetting:UserName"];//<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>
|
|
|
|
|
|
opt.Password = configuration["RabbitmqSetting:Password"];//<2F><><EFBFBD><EFBFBD>Miami
|
|
|
|
|
|
});
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>sqlserver֧<72><D6A7>
|
|
|
|
|
|
x.UseSqlServer(configuration["RabbitmqSetting:DBConnection"]);
|
|
|
|
|
|
});
|
|
|
|
|
|
})
|
|
|
|
|
|
.AsSuperSocketHostBuilder<MyPackage, WastePackageFilter>()
|
|
|
|
|
|
.UsePackageHandler(async (session, package) =>
|
|
|
|
|
|
{
|
|
|
|
|
|
//<2F><>rabbitmq<6D><71><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
await Scoped.Create(async (_, scope) =>
|
|
|
|
|
|
{
|
|
|
|
|
|
var services = scope.ServiceProvider;
|
|
|
|
|
|
var _capBus = services.GetService<ICapPublisher>();
|
|
|
|
|
|
var _logger = services.GetService<ILogger>();
|
|
|
|
|
|
if (package.IsChecked)
|
|
|
|
|
|
{
|
|
|
|
|
|
string msg = $"ͨ<><CDA8>У<EFBFBD><D0A3>,ʮ<><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:{package.Body},<2C>ַ<EFBFBD><D6B7><EFBFBD>:{package.Str}";
|
|
|
|
|
|
if (package.IsHeart)
|
|
|
|
|
|
{
|
|
|
|
|
|
msg = $"{msg},<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,IMEI:{package.IMEI},<2C><><EFBFBD><EFBFBD>:{package.Longitude},γ<><CEB3>:{package.Latitude}";
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
msg = $"{msg},<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ICCID:{package.ICCID},IMEI:{package.IMEI},IMSI:{package.IMSI},<2C>ź<EFBFBD>:{package.GSLQ}";
|
|
|
|
|
|
if (package.IsWeight)
|
|
|
|
|
|
{
|
|
|
|
|
|
msg = $"{msg},Ͱ<><CDB0>С:{package.size},<2C><><EFBFBD><EFBFBD>Ͱ<EFBFBD><CDB0><EFBFBD><EFBFBD>:{package.trashcode},<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:{package.WasteType},<2C><><EFBFBD><EFBFBD>:{package.Weight}KG";
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
msg = $"{msg},<2C><><EFBFBD><EFBFBD>:{package.size}";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//<2F><>rabbitmq<6D><71><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
2021-11-23 18:05:19 +08:00
|
|
|
|
await _capBus.PublishAsync("result.service.insert4g", package);
|
2021-11-23 17:49:40 +08:00
|
|
|
|
_logger.Information(msg);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
_logger.Information($"δͨ<CEB4><CDA8>У<EFBFBD><D0A3>,ʮ<><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:{package.Body},<2C>ַ<EFBFBD><D6B7><EFBFBD>:{package.Str}");
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
})
|
|
|
|
|
|
;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|