浏览代码

没搞过就得瞎搞

old
smallchi 5 年前
父节点
当前提交
0851e2731b
共有 15 个文件被更改,包括 3285 次插入21 次删除
  1. +3
    -2
      src/JT1078.DotNetty.Core/Interfaces/IJT1078TcpMessageHandlers.cs
  2. +3
    -2
      src/JT1078.DotNetty.Core/Interfaces/IJT1078UdpMessageHandlers.cs
  3. +20
    -0
      src/JT1078.DotNetty.Core/Metadata/JT1078Request.cs
  4. +10
    -0
      src/JT1078.DotNetty.Core/Metadata/JT1078Response.cs
  5. +3
    -2
      src/JT1078.DotNetty.Tcp/Handlers/JT1078TcpMessageProcessorEmptyImpl.cs
  6. +2
    -1
      src/JT1078.DotNetty.Tcp/Handlers/JT1078TcpServerHandler.cs
  7. +3106
    -0
      src/JT1078.DotNetty.TestHosting/Configs/NLog.xsd
  8. +44
    -0
      src/JT1078.DotNetty.TestHosting/Configs/nlog.unix.config
  9. +44
    -0
      src/JT1078.DotNetty.TestHosting/Configs/nlog.win.config
  10. +11
    -7
      src/JT1078.DotNetty.TestHosting/Handlers/JT1078TcpMessageHandlers.cs
  11. +4
    -3
      src/JT1078.DotNetty.TestHosting/Handlers/JT1078UdpMessageHandlers.cs
  12. +10
    -0
      src/JT1078.DotNetty.TestHosting/JT1078.DotNetty.TestHosting.csproj
  13. +21
    -1
      src/JT1078.DotNetty.TestHosting/Program.cs
  14. +3
    -2
      src/JT1078.DotNetty.Udp/Handlers/JT1078UdpMessageProcessorEmptyImpl.cs
  15. +1
    -1
      src/JT1078.DotNetty.Udp/Handlers/JT1078UdpServerHandler.cs

+ 3
- 2
src/JT1078.DotNetty.Core/Interfaces/IJT1078TcpMessageHandlers.cs 查看文件

@@ -1,10 +1,11 @@
using JT1078.Protocol;
using JT1078.DotNetty.Core.Metadata;
using JT1078.Protocol;
using System.Threading.Tasks;

namespace JT1078.DotNetty.Core.Interfaces
{
public interface IJT1078TcpMessageHandlers
{
Task Processor(JT1078Package package);
Task<JT1078Response> Processor(JT1078Request request);
}
}

+ 3
- 2
src/JT1078.DotNetty.Core/Interfaces/IJT1078UdpMessageHandlers.cs 查看文件

@@ -1,10 +1,11 @@
using JT1078.Protocol;
using JT1078.DotNetty.Core.Metadata;
using JT1078.Protocol;
using System.Threading.Tasks;

namespace JT1078.DotNetty.Core.Interfaces
{
public interface IJT1078UdpMessageHandlers
{
Task Processor(JT1078Package package);
Task<JT1078Response> Processor(JT1078Request request);
}
}

+ 20
- 0
src/JT1078.DotNetty.Core/Metadata/JT1078Request.cs 查看文件

@@ -0,0 +1,20 @@
using JT1078.Protocol;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT1078.DotNetty.Core.Metadata
{
public class JT1078Request
{
public JT1078Request(JT1078Package package,byte[] src)
{
Package = package;
Src = src;
}

public JT1078Package Package { get; }

public byte[] Src { get; }
}
}

+ 10
- 0
src/JT1078.DotNetty.Core/Metadata/JT1078Response.cs 查看文件

@@ -0,0 +1,10 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace JT1078.DotNetty.Core.Metadata
{
public class JT1078Response
{
}
}

+ 3
- 2
src/JT1078.DotNetty.Tcp/Handlers/JT1078TcpMessageProcessorEmptyImpl.cs 查看文件

@@ -3,15 +3,16 @@ using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using JT1078.DotNetty.Core.Interfaces;
using JT1078.DotNetty.Core.Metadata;
using JT1078.Protocol;

namespace JT1078.DotNetty.Tcp.Handlers
{
class JT1078TcpMessageProcessorEmptyImpl : IJT1078TcpMessageHandlers
{
public Task Processor(JT1078Package package)
public Task<JT1078Response> Processor(JT1078Request request)
{
return Task.CompletedTask;
return Task.FromResult<JT1078Response>(default);
}
}
}

+ 2
- 1
src/JT1078.DotNetty.Tcp/Handlers/JT1078TcpServerHandler.cs 查看文件

@@ -7,6 +7,7 @@ using JT1078.DotNetty.Core.Services;
using JT1078.Protocol;
using JT1078.DotNetty.Core.Interfaces;
using JT1078.DotNetty.Core.Session;
using JT1078.DotNetty.Core.Metadata;

namespace JT1078.DotNetty.Tcp.Handlers
{
@@ -53,7 +54,7 @@ namespace JT1078.DotNetty.Tcp.Handlers
JT1078Package package = JT1078Serializer.Deserialize(msg);
AtomicCounterService.MsgSuccessIncrement();
SessionManager.TryAdd(package.SIM, ctx.Channel);
handlers.Processor(package);
handlers.Processor(new JT1078Request(package, msg));
if (logger.IsEnabled(LogLevel.Debug))
{
logger.LogDebug("accept package success count<<<" + AtomicCounterService.MsgSuccessCount.ToString());


+ 3106
- 0
src/JT1078.DotNetty.TestHosting/Configs/NLog.xsd
文件差异内容过多而无法显示
查看文件


+ 44
- 0
src/JT1078.DotNetty.TestHosting/Configs/nlog.unix.config 查看文件

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
参考:http://www.cnblogs.com/fuchongjundream/p/3936431.html
autoReload:自动再配置
internalLogFile:可以让NLog把内部的调试和异常信息都写入指定文件里程序没问题了,日志却出了问题。这个该怎么办,到底是哪里不正确了?假如日志本身除了bug该如何解决?这就需要日志排错。把日志的错误信息写入日志。
<nlog throwExceptions="true" />
<nlog internalLogFile="file.txt" />- 设置internalLogFile属性可以让NLog把内部的调试和异常信息都写入指定文件里。
<nlog internalLogLevel="Trace|Debug|Info|Warn|Error|Fatal" /> - 决定内部日志的级别,级别越高,输出的日志信息越简洁。
<nlog internalLogToConsole="false|true" /> - 是否把内部日志输出到标准控制台。
<nlog internalLogToConsoleError="false|true" /> - 是否把内部日志输出到标准错误控制台 (stderr)。
设置throwExceptions属性为“true”可以让NLog不再阻挡这类异常,而是把它们抛给调用者。在部署是这样做可以帮我们快速定位问题。一旦应用程序已经正确配置了,我们建议把throwExceptions的值设为“false”,这样由于日志引发的问题不至于导致应用程序的崩溃。
-->
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xsi:schemaLocation="NLog NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogFile="wwwroot/logs/internalLog.txt"
internalLogLevel="Debug" >
<variable name="Directory" value="/data/logs/JT1078.Gateway"/>
<targets>
<target name="all" xsi:type="File"
fileName="${Directory}/all/${shortdate}.log"
layout="${date:format=yyyyMMddHHmmss} ${callsite} ${level}:${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}"/>
<target name="JT1078TcpMessageHandlers" xsi:type="File"
fileName="${Directory}/JT1078TcpMessageHandlers/${shortdate}.log"
layout="${date:format=yyyyMMddHHmmss},${message}"/>
<target name="JT1078TcpMessageHandlersHex" xsi:type="File"
fileName="${Directory}/JT1078TcpMessageHandlersHex/${shortdate}.log"
layout="${date:format=yyyyMMddHHmmss},${message}"/>
<target name="console" xsi:type="ColoredConsole"
useDefaultRowHighlightingRules="false"
layout="${date:format=yyyyMMddHHmmss} ${callsite} ${level} ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}">
<highlight-row condition="level == LogLevel.Debug" foregroundColor="DarkGray" />
<highlight-row condition="level == LogLevel.Info" foregroundColor="Gray" />
<highlight-row condition="level == LogLevel.Warn" foregroundColor="Yellow" />
<highlight-row condition="level == LogLevel.Error" foregroundColor="Red" />
<highlight-row condition="level == LogLevel.Fatal" foregroundColor="Red" backgroundColor="White" />
</target>
</targets>
<rules>
<logger name="*" minlevel="Error" maxlevel="Fatal" writeTo="all"/>
<logger name="JT1078TcpMessageHandlers" minlevel="Debug" maxlevel="Fatal" writeTo="JT1078TcpMessageHandlers"/>
<logger name="JT1078TcpMessageHandlersHex" minlevel="Debug" maxlevel="Fatal" writeTo="JT1078TcpMessageHandlersHex"/>
</rules>
</nlog>

+ 44
- 0
src/JT1078.DotNetty.TestHosting/Configs/nlog.win.config 查看文件

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
参考:http://www.cnblogs.com/fuchongjundream/p/3936431.html
autoReload:自动再配置
internalLogFile:可以让NLog把内部的调试和异常信息都写入指定文件里程序没问题了,日志却出了问题。这个该怎么办,到底是哪里不正确了?假如日志本身除了bug该如何解决?这就需要日志排错。把日志的错误信息写入日志。
<nlog throwExceptions="true" />
<nlog internalLogFile="file.txt" />- 设置internalLogFile属性可以让NLog把内部的调试和异常信息都写入指定文件里。
<nlog internalLogLevel="Trace|Debug|Info|Warn|Error|Fatal" /> - 决定内部日志的级别,级别越高,输出的日志信息越简洁。
<nlog internalLogToConsole="false|true" /> - 是否把内部日志输出到标准控制台。
<nlog internalLogToConsoleError="false|true" /> - 是否把内部日志输出到标准错误控制台 (stderr)。
设置throwExceptions属性为“true”可以让NLog不再阻挡这类异常,而是把它们抛给调用者。在部署是这样做可以帮我们快速定位问题。一旦应用程序已经正确配置了,我们建议把throwExceptions的值设为“false”,这样由于日志引发的问题不至于导致应用程序的崩溃。
-->
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xsi:schemaLocation="NLog NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogFile="wwwroot/logs/internalLog.txt"
internalLogLevel="Debug" >
<variable name="Directory" value="${basedir}/wwwroot/logs/JT1078.Gateway"/>
<targets>
<target name="all" xsi:type="File"
fileName="${Directory}/all/${shortdate}.log"
layout="${date:format=yyyyMMddHHmmss} ${callsite} ${level}:${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}"/>
<target name="JT1078TcpMessageHandlers" xsi:type="File"
fileName="${Directory}/JT1078TcpMessageHandlers/${shortdate}.log"
layout="${date:format=yyyyMMddHHmmss},${message}"/>
<target name="JT1078TcpMessageHandlersHex" xsi:type="File"
fileName="${Directory}/JT1078TcpMessageHandlersHex/${shortdate}.log"
layout="${date:format=yyyyMMddHHmmss},${message}"/>
<target name="console" xsi:type="ColoredConsole"
useDefaultRowHighlightingRules="false"
layout="${date:format=yyyyMMddHHmmss} ${callsite} ${level} ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}">
<highlight-row condition="level == LogLevel.Debug" foregroundColor="DarkGray" />
<highlight-row condition="level == LogLevel.Info" foregroundColor="Gray" />
<highlight-row condition="level == LogLevel.Warn" foregroundColor="Yellow" />
<highlight-row condition="level == LogLevel.Error" foregroundColor="Red" />
<highlight-row condition="level == LogLevel.Fatal" foregroundColor="Red" backgroundColor="White" />
</target>
</targets>
<rules>
<logger name="*" minlevel="Error" maxlevel="Fatal" writeTo="all,console"/>
<logger name="JT1078TcpMessageHandlers" minlevel="Debug" maxlevel="Fatal" writeTo="JT1078TcpMessageHandlers,console"/>
<logger name="JT1078TcpMessageHandlersHex" minlevel="Debug" maxlevel="Fatal" writeTo="JT1078TcpMessageHandlersHex,console"/>
</rules>
</nlog>

+ 11
- 7
src/JT1078.DotNetty.TestHosting/Handlers/JT1078TcpMessageHandlers.cs 查看文件

@@ -1,4 +1,6 @@
using JT1078.DotNetty.Core.Interfaces;
using DotNetty.Buffers;
using JT1078.DotNetty.Core.Interfaces;
using JT1078.DotNetty.Core.Metadata;
using JT1078.Protocol;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
@@ -11,17 +13,19 @@ namespace JT1078.DotNetty.TestHosting.Handlers
{
public class JT1078TcpMessageHandlers : IJT1078TcpMessageHandlers
{
private readonly ILogger<JT1078TcpMessageHandlers> logger;
private readonly ILogger logger;
private readonly ILogger hexLogger;
public JT1078TcpMessageHandlers(ILoggerFactory loggerFactory)
{
logger = loggerFactory.CreateLogger<JT1078TcpMessageHandlers>();
logger = loggerFactory.CreateLogger("JT1078TcpMessageHandlers");
hexLogger = loggerFactory.CreateLogger("JT1078TcpMessageHandlersHex");
}

public Task Processor(JT1078Package package)
public Task<JT1078Response> Processor(JT1078Request request)
{
logger.LogDebug(JsonConvert.SerializeObject(package));
return Task.CompletedTask;
logger.LogInformation(JsonConvert.SerializeObject(request.Package));
hexLogger.LogInformation(ByteBufferUtil.HexDump(request.Src));
return Task.FromResult<JT1078Response>(default);
}
}
}

+ 4
- 3
src/JT1078.DotNetty.TestHosting/Handlers/JT1078UdpMessageHandlers.cs 查看文件

@@ -1,4 +1,5 @@
using JT1078.DotNetty.Core.Interfaces;
using JT1078.DotNetty.Core.Metadata;
using JT1078.Protocol;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
@@ -15,10 +16,10 @@ namespace JT1078.DotNetty.TestHosting.Handlers
logger = loggerFactory.CreateLogger<JT1078UdpMessageHandlers>();
}

public Task Processor(JT1078Package package)
public Task<JT1078Response> Processor(JT1078Request request)
{
logger.LogDebug(JsonConvert.SerializeObject(package));
return Task.CompletedTask;
logger.LogDebug(JsonConvert.SerializeObject(request.Package));
return Task.FromResult<JT1078Response>(default);
}
}
}

+ 10
- 0
src/JT1078.DotNetty.TestHosting/JT1078.DotNetty.TestHosting.csproj 查看文件

@@ -11,6 +11,7 @@
<PackageReference Include="Microsoft.Extensions.Hosting" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="2.2.0" />
<PackageReference Include="NLog.Extensions.Logging" Version="1.5.1" />
</ItemGroup>

<ItemGroup>
@@ -22,6 +23,15 @@
<None Update="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Configs\nlog.unix.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Configs\nlog.win.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Configs\NLog.xsd">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>

</Project>

+ 21
- 1
src/JT1078.DotNetty.TestHosting/Program.cs 查看文件

@@ -7,6 +7,9 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using NLog.Extensions.Logging;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
@@ -18,6 +21,15 @@ namespace JT1078.DotNetty.TestHosting
{
class Program
{
static Program()
{
Newtonsoft.Json.JsonSerializerSettings setting = new Newtonsoft.Json.JsonSerializerSettings();
JsonConvert.DefaultSettings = new Func<JsonSerializerSettings>(() =>
{
setting.Converters.Add(new StringEnumConverter());
return setting;
});
}
static async Task Main(string[] args)
{
//3031636481E2108801123456781001100000016BB392CA7C02800028002E0000000161E1A2BF0098CFC0EE1E17283407788E39A403FDDBD1D546BFB063013F59AC34C97A021AB96A28A42C08
@@ -29,8 +41,16 @@ namespace JT1078.DotNetty.TestHosting
})
.ConfigureLogging((context, logging) =>
{
if (Environment.OSVersion.Platform == PlatformID.Unix)
{
NLog.LogManager.LoadConfiguration("Configs/nlog.unix.config");
}
else
{
NLog.LogManager.LoadConfiguration("Configs/nlog.win.config");
}
logging.AddNLog(new NLogProviderOptions { CaptureMessageTemplates = true, CaptureMessageProperties = true });
logging.SetMinimumLevel(LogLevel.Trace);
logging.AddConsole();
})
.ConfigureServices((hostContext, services) =>
{


+ 3
- 2
src/JT1078.DotNetty.Udp/Handlers/JT1078UdpMessageProcessorEmptyImpl.cs 查看文件

@@ -3,15 +3,16 @@ using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using JT1078.DotNetty.Core.Interfaces;
using JT1078.DotNetty.Core.Metadata;
using JT1078.Protocol;

namespace JT1078.DotNetty.Udp.Handlers
{
class JT1078UdpMessageProcessorEmptyImpl : IJT1078UdpMessageHandlers
{
public Task Processor(JT1078Package package)
public Task<JT1078Response> Processor(JT1078Request request)
{
return Task.CompletedTask;
return Task.FromResult<JT1078Response>(default);
}
}
}

+ 1
- 1
src/JT1078.DotNetty.Udp/Handlers/JT1078UdpServerHandler.cs 查看文件

@@ -52,7 +52,7 @@ namespace JT1078.DotNetty.Udp.Handlers
JT1078Package package = JT1078Serializer.Deserialize(msg.Buffer);
AtomicCounterService.MsgSuccessIncrement();
SessionManager.TryAdd(ctx.Channel, msg.Sender, package.SIM);
handlers.Processor(package);
handlers.Processor(new JT1078Request(package, msg.Buffer));
if (logger.IsEnabled(LogLevel.Debug))
{
logger.LogDebug("accept package success count<<<" + AtomicCounterService.MsgSuccessCount.ToString());


正在加载...
取消
保存