#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