SignalR ConnectionData пуст и не подключается

У меня есть два концентратора SignalR в моем приложении MVC, ChatHub и AnotherHub. ChatHub работает хорошо, но я не могу подключиться к другому. Я знаю, что SignalR распознает существование AnotherHub, потому что я получаю следующий код JavaScript в /signalr/hubs:

signalR.chatHub = {
    _: {
        hubName: 'ChatHub',
        ignoreMembers: ['post'],
        connection: function () { return signalR.hub; }
    },

    post: function (room, message) {
        return invoke(this, "Post", $.makeArray(arguments));
    }
};

signalR.anotherHub = {
    _: {
        hubName: 'AnotherHub',
        ignoreMembers: ['doSomething'],
        connection: function () { return signalR.hub; }
    },

    doSomething: function (thing) {
        return invoke(this, "DoSomething", $.makeArray(arguments));
    }
};

На странице чата Fiddler сообщает мне следующее при соединении с /signalr/signalr/connect:

connectionData      [{"name":"chathub"}]
tid                 10

Однако при попытке подключиться к anotherHub Fiddler говорит:

connectionData      []
tid                 3

Мой javascript на странице чата:

        cn = $.connection.chatHub;
        $.connection.hub.start();

и на другой странице:

        cn = $.connection.anotherHub;
        $.connection.hub.start();

Теперь любопытная вещь; когда я меняю anotherHub на chatHub на другой странице, соединение работает. Когда я меняю chatHub на anotherHub на странице чата, это тоже работает. Единственная комбинация, которая не работает, это anotherHub на другой странице. (Я подтвердил это с помощью точек останова на стороне сервера в конструкторах концентраторов и проверки fiddler для параметра ConnectionData). Любые идеи?


person harriyott    schedule 12.10.2012    source источник
comment
Если вы не зарегистрируетесь для каких-либо обратных вызовов на другом концентраторе, connectionData будет пустым.   -  person davidfowl    schedule 12.10.2012
comment
Учитывая, что это работает, если я использую чат на другой странице и наоборот, что мне делать?   -  person harriyott    schedule 12.10.2012
comment
Вы когда-нибудь находили решение этой проблемы? У меня такая же ошибка. У меня есть 2 концентратора, но данные подключения на втором концентраторе пусты. У меня настроены обратные вызовы, и они просто не работают.   -  person spaceman    schedule 15.04.2013
comment
Извините но нет. Я решил использовать один хаб и маршрутизировать вещи разными способами.   -  person harriyott    schedule 15.04.2013


Ответы (1)


Вы уверены, что ссылались на все те же JS-библиотеки (особенно /signalr/hubs) на другой странице?

person Paige Cook    schedule 12.10.2012
comment
Да, совершенно уверен. Я могу подключиться к chatHub на другой странице, но не к anotherHub. - person harriyott; 12.10.2012