using System.Diagnostics;
using XFEExtension.NetCore.CyberComm;
namespace XFEExtension.NetCore.XFEConsole;
/// <summary>
/// XFE控制台程序客户端
/// </summary>
/// <remarks>
/// 默认构造函数
/// </remarks>
/// <param name="ipAddress">控制台输出端IP地址</param>
/// <param name="clientName">客户端名称</param>
/// <param name="clientID">客户端ID</param>
/// <param name="password">密码</param>
public class XFEConsoleProgramClient(string ipAddress, string clientName, string clientID, string password)
{
/// <summary>
/// 客户端
/// </summary>
public CyberCommClient Client { get; set; } = new(new CyberCommClientOptions
{
ServerUri = new Uri(ipAddress, UriKind.Absolute),
Reconnect = new CyberCommReconnectOptions { Enabled = false, MaxAttempts = 0 },
RequestHeaders = new Dictionary<string, string>
{
[nameof(ClientName)] = clientName,
[nameof(Password)] = password,
[nameof(ClientID)] = clientID
}
});
/// <summary>
/// 客户端名称
/// </summary>
public string ClientName { get; set; } = clientName;
/// <summary>
/// 客户端ID
/// </summary>
public string ClientID { get; set; } = clientID;
/// <summary>
/// 连接时密码
/// </summary>
public string Password { get; set; } = password;
/// <summary>
/// 连接服务器
/// </summary>
/// <returns></returns>
public async Task<bool> Connect()
{
try
{
Client.ErrorHandler = exception => Debug.WriteLine(exception);
await Client.ConnectAsync().ConfigureAwait(false);
return Client.IsConnected;
}
catch (Exception exception)
{
Debug.WriteLine(exception);
return false;
}
}
/// <summary>
/// 输出控制台消息
/// </summary>
/// <param name="message">消息文本</param>
/// <param name="isLine">是否是一整行</param>
/// <returns></returns>
public async Task OutputMessage(string message, bool isLine)
{
try
{
if (Client.IsConnected)
await Client.SendTextAsync(XFEConsoleProtocol.CreateOutputMessage(message, isLine));
}
catch { }
}
}
using System.Diagnostics;
using XFEExtension.NetCore.CyberComm;
namespace XFEExtension.NetCore.XFEConsole;
/// <summary>
/// XFE控制台程序客户端
/// </summary>
/// <remarks>
/// 默认构造函数
/// </remarks>
/// <param name="ipAddress">控制台输出端IP地址</param>
/// <param name="clientName">客户端名称</param>
/// <param name="clientID">客户端ID</param>
/// <param name="password">密码</param>
public class XFEConsoleProgramClient(string ipAddress, string clientName, string clientID, string password)
{
/// <summary>
/// 客户端
/// </summary>
public CyberCommClient Client { get; set; } = new(new CyberCommClientOptions
{
ServerUri = new Uri(ipAddress, UriKind.Absolute),
Reconnect = new CyberCommReconnectOptions { Enabled = false, MaxAttempts = 0 },
RequestHeaders = new Dictionary<string, string>
{
[nameof(ClientName)] = clientName,
[nameof(Password)] = password,
[nameof(ClientID)] = clientID
}
});
/// <summary>
/// 客户端名称
/// </summary>
public string ClientName { get; set; } = clientName;
/// <summary>
/// 客户端ID
/// </summary>
public string ClientID { get; set; } = clientID;
/// <summary>
/// 连接时密码
/// </summary>
public string Password { get; set; } = password;
/// <summary>
/// 连接服务器
/// </summary>
/// <returns></returns>
public async Task<bool> Connect()
{
try
{
Client.ErrorHandler = exception => Debug.WriteLine(exception);
await Client.ConnectAsync().ConfigureAwait(false);
return Client.IsConnected;
}
catch (Exception exception)
{
Debug.WriteLine(exception);
return false;
}
}
/// <summary>
/// 输出控制台消息
/// </summary>
/// <param name="message">消息文本</param>
/// <param name="isLine">是否是一整行</param>
/// <returns></returns>
public async Task OutputMessage(string message, bool isLine)
{
try
{
if (Client.IsConnected)
await Client.SendTextAsync(XFEConsoleProtocol.CreateOutputMessage(message, isLine));
}
catch { }
}
}