using MessagePack; namespace AyCode.Services.SignalRs; [MessagePackObject] public class SignalRequestByIdMessage(Guid id) : ISignalRequestMessage { [Key(0)] public Guid Id { get; set; } = id; } public interface ISignalRequestMessage : ISignalRMessage { TRequestId Id { get; set; } } public interface ISignalRMessage { } [MessagePackObject] public sealed class SignalResponseMessage(SignalResponseStatus status, TResponseData? responseData) : ISignalResponseMessage { [Key(0)] public SignalResponseStatus Status { get; set; } = status; [Key(1)] public TResponseData? ResponseData { get; set; } = responseData; } //[MessagePackObject] //public sealed class SignalResponseMessage(SignalResponseStatus status) : ISignalResponseMessage //{ // [Key(0)] // public SignalResponseStatus Status { get; set; } = status; //} public interface ISignalResponseMessage : ISignalResponseMessage { TResponseData? ResponseData { get; set; } } public interface ISignalResponseMessage : ISignalRMessage { SignalResponseStatus Status { get; set; } } public enum SignalResponseStatus : byte { Error = 0, Success = 5 } public interface IAcSignalRHubClient : IAcSignalRHubBase { Task SendMessageToServerAsync(int messageTag, ISignalRMessage? message, int? requestId ); //Task SendRequestToServerAsync(int messageTag, int requestId); }