diff --git a/src/JT808.DotNetty/Configurations/JT808Configuration.cs b/src/JT808.DotNetty/Configurations/JT808Configuration.cs index 6fb33e5..bbb324b 100644 --- a/src/JT808.DotNetty/Configurations/JT808Configuration.cs +++ b/src/JT808.DotNetty/Configurations/JT808Configuration.cs @@ -46,5 +46,7 @@ namespace JT808.DotNetty.Configurations // 就跟神兽貔貅一样。。。 /// public List ForwardingRemoteAddress { get; set; } + + public string RedisHost { get; set; } } } diff --git a/src/JT808.DotNetty/Interfaces/IJT808Publishing.cs b/src/JT808.DotNetty/Interfaces/IJT808Publishing.cs index aeb8cb8..26d88b5 100644 --- a/src/JT808.DotNetty/Interfaces/IJT808Publishing.cs +++ b/src/JT808.DotNetty/Interfaces/IJT808Publishing.cs @@ -7,6 +7,6 @@ namespace JT808.DotNetty.Interfaces { public interface IJT808Publishing { - Task Publish(string topicName,string key,string value); + Task PublishAsync(string topicName,string key,string value); } } diff --git a/src/JT808.DotNetty/Internal/JT808SessionPublishingEmptyImpl.cs b/src/JT808.DotNetty/Internal/JT808SessionPublishingEmptyImpl.cs new file mode 100644 index 0000000..75066e9 --- /dev/null +++ b/src/JT808.DotNetty/Internal/JT808SessionPublishingEmptyImpl.cs @@ -0,0 +1,16 @@ +using JT808.DotNetty.Interfaces; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +namespace JT808.DotNetty.Internal +{ + internal class JT808SessionPublishingEmptyImpl : IJT808SessionPublishing + { + public Task PublishAsync(string topicName, string key, string value) + { + return Task.CompletedTask; + } + } +} diff --git a/src/JT808.DotNetty/Internal/JT808SessionPublishingRedisImpl.cs b/src/JT808.DotNetty/Internal/JT808SessionPublishingRedisImpl.cs new file mode 100644 index 0000000..93cbf99 --- /dev/null +++ b/src/JT808.DotNetty/Internal/JT808SessionPublishingRedisImpl.cs @@ -0,0 +1,40 @@ +using JT808.DotNetty.Interfaces; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using StackExchange.Redis; +using Microsoft.Extensions.Options; +using JT808.DotNetty.Configurations; +using Microsoft.Extensions.Logging; + +namespace JT808.DotNetty.Internal +{ + internal class JT808SessionPublishingRedisImpl : IJT808SessionPublishing + { + private IConnectionMultiplexer connectionMultiplexer; + + private IOptionsMonitor optionsMonitor; + + private ILogger logger; + + private JT808SessionPublishingRedisImpl( + ILoggerFactory loggerFactory, + IOptionsMonitor optionsMonitor + ) + { + this.optionsMonitor = optionsMonitor; + logger = loggerFactory.CreateLogger(); + connectionMultiplexer = ConnectionMultiplexer.Connect(optionsMonitor.CurrentValue.RedisHost); + } + + public Task PublishAsync(string topicName, string key, string value) + { + if (connectionMultiplexer.IsConnected) + { + + } + return Task.CompletedTask; + } + } +}