Я начал копать в SignalR 0.4 и попал в проблему. Я хотел бы иметь два различных концентраторы на той же странице, которые, чтобы держать вещи простыми являются:Не удается получить работу SignalR с двумя концентраторами
public class ChatHub : Hub
{
public void Send(string message)
{
Clients.addMessage(message);
}
}
public class Chat2Hub : Hub
{
public void Send2(string message)
{
Clients.addMessage2(message);
}
}
Это мой код клиента:
function initChat() {
var chat = $.connection.chat;
chat.addMessage = function (message) {...};
$('.send-cmd').click(function() {...});
return $.connection.hub.start();
}
function initChat2() {
var chat2 = $.connection.chat2;
chat2.addMessage2 = function (message) {...};
$('.send2-cmd').click(function() {...});
return $.connection.hub.start();
}
$(function() {
initChat().done(function() {
initChat2();
});
});
достаточно просто, но я не могу заставить их работать вместе , В этом примере «чат» работает правильно и «chat2» терпит неудачу (без ошибок). Если я обратный порядок инициализации, конечно, происходит наоборот.
Что мне не хватает?
Это не работает. Там также есть чек в signalR.start(), которые проверяют, есть ли уже доступный транспорт, и немедленно разрешите обещание. Великая библиотека BTW :-) – iacoware
Что не работает? Вызов запуска один раз? У вас есть куча проблем с кодом. Вам необходимо подписаться на все события на всех концентраторах до начала вызова. – davidfowl
Ты (конечно) прав. hub.start() должен быть вызван после завершения проводки. – iacoware