41 lines
1.1 KiB
C#
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;
|
|
}
|
|
|
|
}
|
|
}
|