Не удается заставить SignalR работать с двумя концентраторами - PullRequest
2 голосов
/ 14 февраля 2012

Я начал копаться в SignalR 0.4 и застрял на проблеме. Я хотел бы иметь два разных концентратора на одной странице, которые для простоты:

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();
    });
});

Достаточно просто, но я не могу заставить их работать вместе. В этом примере «chat» работает правильно, а «chat2» не работает (без ошибок). Если я изменяю порядок инициализации, конечно, происходит обратное.

Чего мне не хватает?

1 Ответ

3 голосов
/ 14 февраля 2012

Почему вы запускаете соединение с концентратором дважды. Существует одно соединение для всех концентраторов, поэтому вам нужно всего лишь один раз вызвать $ .connection.hub.start ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...