Итак, у меня есть веб-приложение, работающее на signalR, и я использую только один HTML-код со статическим заголовком и нижним колонтитулом и просто div для динамического изменения содержимого страницы.Одна из вкладок, которая загружается в div, загружает файл js с подключением signalR к концентраторам, все работает нормально, файл js прослушивает события и запускает методы на стороне сервера, но проблема заключается в том, что сервер не вызывает функции клиента в jsфайл.Идентификаторы подключения совпадают, и он успешно подключен к клиенту, но не выполняет функции.Другой js-файл, который я использую для аутентификации пользователя, не добавляется динамически и работает просто отлично.
Метод хаба, который вызывается правильно:
public void ClientCall()
{
IHubContext context;
context = GlobalHost.ConnectionManager.GetHubContext<LdServiceHub>();
context.Clients.Client(this.Context.ConnectionId).callbackMethod("50");
}
клиентская функция js, которая не запускается:
$.connection.ldServiceHub.client.callbackMethod = function (item) {
console.log(item);}
и вот как я загружаю файл signalR в пустой div:
var script = document.createElement('script');
script.src = 'Scripts/SignalRConnection.js';
script.type = 'text/javascript';
maindiv.appendChild(script);
он загружается правильно и правильно подключается, правильно запускает функцию концентратора, но никогда не получает вызов от сервера и процедурклиентская функция.
Имейте в виду, что сценарий добавляется в DOM динамически, и приведенный выше код является лишь фрагментом кода, поскольку используемый мной код src содержит много несвязанных вещей.Спасибо
РЕДАКТИРОВАТЬ: думал, что я должен упомянуть, что я использую собственный хост Owin для размещения соединения, все отлично работает в файле js аутентификации пользователя, единственное различие между этими двумя заключается в том, что второй динамически добавляется в html