Как вы отправляете из кода позади - signalR 1.0.1?

У меня есть ситуация, когда я использую signalR и asp.net. Моя реализация очень похожа на пример чата в asp. нетто

Мой вопрос в том, как мне отправить из кода позади? Во всех примерах используется более старая версия SignalR.


person Osa E    schedule 18.03.2013    source источник


Ответы (1)


Внутри вашего концентратора создайте void вот так:

public static void UpdateClients()
{
    var context = GlobalHost.ConnectionManager.GetHubContext<NameOfHub>();
    context.Clients.All.ClientSideFunction();
}

затем используйте как:

NameOfHub.UpdateClients();
person Eonasdan    schedule 18.03.2013
comment
Пожалуйста, поясните вторую часть. Я получаю ошибки компиляции. Я не могу использовать имя класса концентратора. - person Osa E; 19.03.2013
comment
они оба в одном пространстве имен? если нет, вам нужно будет это сделать. какое сообщение об ошибке вы получаете? - person Eonasdan; 19.03.2013
comment
Спасибо, это сработало. Требовалось такое же пространство имен, поэтому вместо этого я использовал строку hubname, чтобы избежать проблем с пространством имен. Я использовал имя функции на стороне сервера вместо имени функции на стороне клиента. - person Osa E; 19.03.2013
comment
var context = GlobalHost.ConnectionManager.GetHubContext‹NameOfHub›(); Должен кэшироваться. - person davidfowl; 19.03.2013
comment
вы также можете сделать .GetHubContext<Namespace.NameOfHub>() - person Eonasdan; 19.03.2013