Added message MtClientReady into MtClient. Added event Disconnected into MtRpcClient

This commit is contained in:
Viacheslav Demydiuk
2024-01-11 22:52:43 +02:00
parent 19fb08fba4
commit af5dd93056
2 changed files with 22 additions and 5 deletions
+18 -4
View File
@@ -1,4 +1,7 @@
namespace MtClient
using System.ComponentModel.Design;
using System.Data;
namespace MtClient
{
public enum MessageType
{
@@ -8,6 +11,7 @@
ExpertList = 3,
ExpertAdded = 4,
ExpertRemoved = 5,
ClientReady = 6
}
public abstract class MtMessage
@@ -37,6 +41,16 @@
}
}
public class MtClientReady : MtMessage
{
public override MessageType MsgType => MessageType.ClientReady;
protected override string GetMessageBody()
{
return string.Empty;
}
}
public class MtEvent(int expertHandle, int eventType, string payload) : MtMessage
{
public override MessageType MsgType => MessageType.Event;
@@ -101,11 +115,11 @@
}
}
public class MtExpertListMsg(List<int> experts) : MtMessage
public class MtExpertListMsg(HashSet<int> experts) : MtMessage
{
public override MessageType MsgType => MessageType.ExpertList;
public List<int> Experts { private set; get; } = experts;
public HashSet<int> Experts { private set; get; } = experts;
protected override string GetMessageBody()
{
@@ -115,7 +129,7 @@
public static MtMessage? Parse(string payload)
{
var pieces = payload.Split(",");
List<int> handles = [];
HashSet<int> handles = [];
foreach (var p in pieces)
{
if (int.TryParse(p, out int expertHandle) == false)
+4 -1
View File
@@ -40,7 +40,8 @@ namespace MtClient
try
{
await ws_.CloseAsync(WebSocketCloseStatus.NormalClosure, null, CancellationToken.None);
if (ws_.State == WebSocketState.Open)
await ws_.CloseAsync(WebSocketCloseStatus.NormalClosure, null, CancellationToken.None);
ws_.Dispose();
}
catch (Exception ex)
@@ -103,6 +104,7 @@ namespace MtClient
{
Log($"DoReceive: close signal {result.CloseStatusDescription}");
await ws_.CloseAsync(WebSocketCloseStatus.NormalClosure, null, CancellationToken.None);
Disconnected?.Invoke(this, EventArgs.Empty);
break;
}
else
@@ -169,6 +171,7 @@ namespace MtClient
public event EventHandler<MtMessage>? MessageReceived;
public event EventHandler<EventArgs>? ConnectionFailed;
public event EventHandler<EventArgs>? Disconnected;
private readonly ClientWebSocket ws_ = new();
private readonly string host_;