Используя Signalr (1.0.0-alpha2), я хочу знать, можно ли добавить клиентские функции после запуска соединения.
Скажем, я создаю свое соединение и хватаю прокси. Затем я добавляю некоторые клиентские функции Server Fired в концентратор, чтобы сделать несколько вещей. Затем я начинаю подключение. Затем я хочу добавить еще несколько функций, запущенных сервером, к моему центральному объекту. Это возможно?
var myHub= $.connection.myHub;
myHub.SomeClientFunction = function() {
alert("serverside called 'Clients.SomeClientFunction()'");
};
$.connection.hub.start()
.done(function() {
myHub.SomeNewClientFunction = function() {
alert("serverside called 'Clients.SomeNewClientFunction()'");
}
})
Этот пример нереалистичен, но я в основном хочу отправить свою переменную myHub другому объекту после того, как концентратор запущен, чтобы подписаться на новые события, которые исходный код не заботился.
Пример из реальной жизни: информационная панель с рядом различных событий хаба (новые посещения сайта, сообщение в чате, ошибка сайта). Я «подписываюсь» после того, как соединение началось, а затем передаю свой прокси-концентратор всем своим различным компонентам пользовательского интерфейса для обработки их конкретных «типов сообщений». Должен ли я создавать отдельные концентраторы для них или я должен иметь возможность добавлять дополнительные клиентские функции Server Fired на лету?