2013-11-12 2 views
0

Я ищу способ открыть событие в моем классе репозитория и зарегистрироваться на это событие в моем сигнальном хабе, , например, если пользователь был добавлен в мое приложение все подключенные пользователи получат уведомление. Я использую asp.net Mvc в своем бэкэнде. Каков рекомендуемый подход для этого, С чего начать?Ответы на события в концентраторе SignalR

ответ

3

Если вы хотите уведомить других клиентов, это так же просто, как выполнить сообщение для всех подключенных клиентов.

AKA:

class MyHub : Hub 
{ 
    public void AddUserToApplication() 
    { 
     ...Your logic to add your user... 
     Clients.All.newUserInApp(); // newUserInApp would then have to be defined on the client. 
    } 
} 

Если после этого вы хотите, чтобы выполнить этот тип поведения вне хаба, иначе может быть в таймере вы можете получить доступ к концентраторы «Клиенты» собственность через:

IHubContext context = GlobalHost.ConnectionManager.GetHubContext<MyHub>(); 

Таким образом, вы можете сделать:

context.Clients.All.newUserInApp(); 
+0

во-первых, спасибо, но я имел в виду, чтобы выставить событие в моем хранилище, например, «це c событие MyAppEvent UserAdded; " и в моем концентраторе сделать что-то вроде «repository.UserAdded + = MyCustomFunctionName» и установить эту функцию в самом узле. –

+1

Вы можете сделать это со статическим методом хаба, в рамках статического метода хаба вам придется использовать мой второй подход при поиске контекста хабов. –

Смежные вопросы