2014-12-11 6 views
1

Я пытаюсь сделать небольшой образец сигнала, чтобы понять его. Но я застрял и не смог получить выход.Как вызвать метод хаба из C#

Вот мой пример код

public class HubClass : Hub 
{ 
    public void HubMethod(string myMessage) 
    { 
     Clients.All.hubClient(myMessage); 
    } 
} 

public ActionResult Index() 
{ 
    var hubContext = GlobalHost.ConnectionManager.GetHubContext<HubClass>(); 
    hubContext.Clients.All.HubMethod("Hello"); 
    return View(); 
} 

<div class="msg"></div> 
<script src="~/Scripts/jquery.signalR-2.1.2.min.js"></script> 
<script src="~/signalr/hubs"></script> 
<script> 
    var hubCls = $.connection.hubClass; 
    $.connection.hub.start(); 
    hubCls.client.hubMethod = function (message) { 
     $('.msg').text(message); 
    }; 
</script> 

Я не знаю, где я делаю неправильно

ответ

1

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

Clients.All.HubMethod(myMessage); 

SingalR преобразует имя метода в случай верблюда и вызывает функцию hubMethod в браузере.

Вам также необходимо добавить класс запуска Owin, который позволяет SignalR на вашем сайте. Это описано в Tutorial: Getting Started with SignalR2 and MVC 5

+0

Если я добавлю этот 'Clients.All.HubMethod (myMessage);' к моему hub-методу, а затем это, как @jerry, сказал: hubCls.server.hubMethod ("some message"); 'to my сценарий, я получаю вывод. Но я хочу вызвать его из C#, например 'hubContext.Clients.All.HubMethod (" Hello1 "); hubContext.Clients.All.HubMethod (" Hello2 ");' – mahindar

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