Quellcode durchsuchen

1.增加RedisHost配置属性

2.增加默认空的会话发布实现
3.增加Redis的会话发布实现待完善
tags/v1.0.0
SmallChi vor 6 Jahren
Ursprung
Commit
69bcd51b0f
4 geänderte Dateien mit 59 neuen und 1 gelöschten Zeilen
  1. +2
    -0
      src/JT808.DotNetty/Configurations/JT808Configuration.cs
  2. +1
    -1
      src/JT808.DotNetty/Interfaces/IJT808Publishing.cs
  3. +16
    -0
      src/JT808.DotNetty/Internal/JT808SessionPublishingEmptyImpl.cs
  4. +40
    -0
      src/JT808.DotNetty/Internal/JT808SessionPublishingRedisImpl.cs

+ 2
- 0
src/JT808.DotNetty/Configurations/JT808Configuration.cs Datei anzeigen

@@ -46,5 +46,7 @@ namespace JT808.DotNetty.Configurations
// 就跟神兽貔貅一样。。。
/// </summary>
public List<JT808ClientConfiguration> ForwardingRemoteAddress { get; set; }

public string RedisHost { get; set; }
}
}

+ 1
- 1
src/JT808.DotNetty/Interfaces/IJT808Publishing.cs Datei anzeigen

@@ -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);
}
}

+ 16
- 0
src/JT808.DotNetty/Internal/JT808SessionPublishingEmptyImpl.cs Datei anzeigen

@@ -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;
}
}
}

+ 40
- 0
src/JT808.DotNetty/Internal/JT808SessionPublishingRedisImpl.cs Datei anzeigen

@@ -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<JT808Configuration> optionsMonitor;

private ILogger<JT808SessionPublishingRedisImpl> logger;

private JT808SessionPublishingRedisImpl(
ILoggerFactory loggerFactory,
IOptionsMonitor<JT808Configuration> optionsMonitor
)
{
this.optionsMonitor = optionsMonitor;
logger = loggerFactory.CreateLogger<JT808SessionPublishingRedisImpl>();
connectionMultiplexer = ConnectionMultiplexer.Connect(optionsMonitor.CurrentValue.RedisHost);
}

public Task PublishAsync(string topicName, string key, string value)
{
if (connectionMultiplexer.IsConnected)
{

}
return Task.CompletedTask;
}
}
}

Laden…
Abbrechen
Speichern