Событие On на клиентском концентраторе SignalR не вызывается
Кажется, у меня проблема с SignalR 's JS Client Hub.
Проблема в том, чтона' кажется, что обработчик не работает - он не генерирует ошибки, но нене получает никаких сигналов, отправленных сервером. Код ниже показывает фрагмент, где я вызываю сервер (используя invoke), который работает нормально - затем на сервере я перезваниваю acceptHubData, который должен быть получен на клиенте, но это не так.т.
Моя цель заключается в том, чтобы при переходе на страницы каждая страница открывала соединение с определенным концентратором и освобождала это соединение, когда пользователь переходит на другую страницу !!
РЕДАКТИРОВАТЬ: использование следующего фрагмента кода работает, но мне интересно, почему код ниже, используяна' событие нет работа!
var superHub = $.connection.mySuperHub;
superHub.client.acceptHubData = function (data) {
$('hello there' + data + '').prependTo($('#ul1'))
}
$.connection.hub.start().done(function () {
$('done phase 1').prependTo($('#ul1'))
});
Любая помощь приветствуется!
Это код клиента (в js)
$(document).ready(function () {
var myHub;
try {
var connection = $.hubConnection();
connection.start().done(function () {
myHub = connection.createHubProxy("mySuperHub");
myHub.on('acceptHubData', function (data) {
alert(data); // THIS IS NOT CALLED!
});
myHub.invoke('AcceptSignal', "hello from the client2");
});
}
catch (e) {
alert(e.message);
}
});
Это код сервера:
[HubName("mySuperHub")]
public class MyHub : Hub
{
private readonly HubEngine _hubEngine;
public MyHub() : this(HubEngine.Instance) { }
public MyHub(HubEngine hubEngine)
{
_hubEngine = hubEngine;
}
public void AcceptSignal(string msg)
{
Clients.Caller.acceptHubData("hi");
Clients.All.acceptHubData("hi");
}
}