2024-10-25 19:11:43 +08:00

41 lines
1.1 KiB
C#

using System;
using System.Threading.Tasks;
using JiShe.CollectBus.Protocol.Contracts.Interfaces;
using JiShe.CollectBus.Protocol.Contracts.Models;
using Microsoft.Extensions.Caching.Distributed;
using TouchSocket.Sockets;
namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
{
public abstract class BaseProtocolPlugin(IDistributedCache cache) : IProtocolPlugin
{
public abstract Task<ProtocolInfo> GetAsync();
public virtual Task ReceivedAsync(ITcpSessionClient client, ReceivedDataEventArgs e)
{
return Task.CompletedTask;
}
public virtual Task SendAsync()
{
return Task.CompletedTask;
}
public virtual async Task LoadAsync()
{
var result = cache.GetString("myKey");
if (result == null)
{
result = "Calculated Data";
cache.SetString("myKey", result, new DistributedCacheEntryOptions
{
AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(10)
});
}
await Task.CompletedTask;
}
}
}