37 lines
1.2 KiB
C#
37 lines
1.2 KiB
C#
using DotNetty.Transport.Channels;
|
|
using JSMachine.WMS.Netty.Common.Util;
|
|
using JSMachine.WMS.Netty.NettyAsClient.Command;
|
|
using Prism.Events;
|
|
using System.ComponentModel.Composition;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace JSMachine.WMS.Netty.NettyAsClient.CommandHandler
|
|
{
|
|
/// <summary>
|
|
/// Netty 客户端命令处理器基类,提供通道上下文及收发端地址信息。
|
|
/// </summary>
|
|
[InheritedExport("NettyAsClient")]
|
|
public abstract class BaseCmdhandler
|
|
{
|
|
/// <summary>
|
|
/// 当前命令所属的 Netty 通道上下文。
|
|
/// </summary>
|
|
public IChannelHandlerContext Channel { get; set; }
|
|
/// <summary>
|
|
/// 远端地址信息。
|
|
/// </summary>
|
|
public IPInfo RemoteIPInfo => Channel.ToIPInfo(AddressOnwer.Remote);
|
|
/// <summary>
|
|
/// 本地地址信息。
|
|
/// </summary>
|
|
public IPInfo LocalIPInfo=> Channel.ToIPInfo(AddressOnwer.Local);
|
|
/// <summary>
|
|
/// 处理一条客户端命令。
|
|
/// </summary>
|
|
/// <param name="msg">待处理的命令。</param>
|
|
/// <returns>处理成功返回 <see langword="true"/>。</returns>
|
|
public abstract Task<bool> Handle(BaseCmd msg);
|
|
|
|
}
|
|
}
|