Клиент Signal R не включается даже при использовании сложных объектов, сериализованных в формате Json

#asp.net-core #signalr.client #asp.net-core-signalr #.net-5

#asp.net-core #signalr.client #asp.net-core-signalr #.net-5

Вопрос:

Я пытаюсь реализовать клиент и сервер signal r с сериализацией json. В настоящее время я ориентируюсь на .NET 5 и использую реализацию Microsoft json serializer. Мои сообщения представлены сложными объектами, и для чтения и записи используется JsonConverter. Я вижу, что на клиенте событие On никогда не вызывается, за исключением случаев, когда параметр обработчика указан как класс объекта.

         connection.On("EntityEventAsync", (object obj) => 
        {
            //obj will be json object here
        });
 

На стороне клиента я ясно вижу, что сообщения принимаются при вызове JsonConverter и считывает сообщения как следует, НО событие On никогда не возникает.

Типизированный код клиентского концентратора

 public interface IEventsClient
{
    Task EntityEventAsync(DetailedMessage message);
}


[Authorize(AuthenticationSchemes = "Basic,Bearer")]
public class EventHub : Hub<Clients.IEventsClient>
{   
    #region CONSTRUCTOR
    public EventHub()
    {
    }
    #endregion
}
 

Чего мне здесь может не хватать?

Комментарии:

1. Привет @NullRerence, не могли бы вы поделиться своим методом hub?

2. @Rena я обновил вопрос с помощью кода хаба.

Ответ №1:

Если кто-то еще сталкивается с той же проблемой, то это может быть проблема с реализацией JsonConverter, как в моем случае.

Можно включить ведение журнала клиента Signal R, как упоминалось здесь https://docs.microsoft.com/en-us/aspnet/core/signalr/diagnostics?view=aspnetcore-5.0 , и это должно упростить решение проблемы.