Неперехваченная ошибка типа: не удается прочитать свойство ‘hub’ неопределенного

#jquery #.net #signalr #signalr-hub #signalr.client

#jquery #.net #signalr #signalr-hub #signalr.client

Вопрос:

У меня проблема с вызовом функции при отключении signalr hub.

вот мои ссылки на js

 <script src="~/js/jquery.min.js"></script>

<script src="~/SignalR/dist/browser/signalr.min.js"></script>
 

скрипт внутри файла cshtml

  var connection = new signalR.HubConnectionBuilder()
.withUrl("/chatt", {
    accessTokenFactory: () => "testing"
})
.build();


connection.start().then(function () {
connection.invoke('GetConnectionId')
.then(function (connectionId) {
   //alert(connectionId);
   //removeConnectionID(connectionId);
})

}).catch(err => console.error(err));

 
$.connection.hub.disconnected(function () {
    removeConnectionID();
})

async function removeConnectionID() {
    await  $.get("/Chat/Test") ;
    }
 

в $.connection.hub.disconnected я получаю
Неперехваченная ошибка типа: не удается прочитать свойство ‘hub’ неопределенного.
Когда я начинаю вводить $.connection. я вообще не вижу свойство hub.

вот мои службы настройки

  public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<mojDbContext>(options=> options.UseSqlServer(Configuration.GetConnectionString("IB150198T")));
        services.AddControllersWithViews();

        services.AddMvc();
        services.AddDistributedMemoryCache();
        services.AddSession();
        
        services.AddSignalR();
       // services.AddSingleton<IUserIdProvider, UserProvider>();
    }
 

Я где-то видел, что у меня должна быть ссылка на js-файл с именем что-то вроде «/ SignalR / Hubs», но не могу найти его в библиотеке на стороне клиента для SignalR

любая помощь приветствуется!!!

Ответ №1:

Вы сбиваете с толку ASP.NET Сигнал с ASP.NET Основной сигнал.

Ваш код использует ASP.NET Core SignalR до тех пор, пока вы не попытаетесь получить доступ $.connection.hub к шаблону, который был в ASP.NET СигналР.

Вы можете посмотреть учебник для ASP.NET Основной сигнал здесь https://docs.microsoft.com/aspnet/core/tutorials/signalr?view=aspnetcore-5.0amp;tabs=visual-studio