0

Я создаю приложение, используя сигнал r для отправки уведомлений. Я использую VS 2012. В моем представлении уведомления я добавил код ниже в @model App.Models.Notification.Уведомление о сигнале r

@{ 
    ViewBag.Title = "Index"; 
} 

@section Scripts 
{  
    <script src="/Scripts/jquery-1.8.20.min.js"></script> 
    <script src="~/Scripts/jquery.signalR-2.2.0.js"></script> 
    <script src="/signalr/hubs"></script> 

    <script type="text/javascript"> 
     $(function() { 

      var proxy = $.connection.notificationHub; 
      alert(proxy); 
      $("#button1").click(function() { 
       alert($("#text1").val()); 
       proxy.server.sendNotifications($("#text1").val()); 
       alert(12); 
      }); 
      $.connection.hub.start(); 

      alert(14); 
     }); 
    </script> 
} 
<h2>Index</h2> 

@using (Html.BeginForm()) 
{ 
    <input id="text1" type="text" /> 
    <input id="button1" type="submit" value="Send" /> 
} 

По щелчку кнопки, sendNotifications() не вызывался и уведомление не отправляет клиенту.

Это класс HUB

public class NotificationHub : Hub 
{ 
    public void Hello() 
    { 
     Clients.All.hello(); 
    } 

    public void SendNotifications(string message) 
    { 
     Clients.All.receiveNotification(message); 
    } 
} 

Может кто-то помочь мне с решением

+0

Вы должны добавить обработчик на свой код JavaScript для 'receiveNotification'. – janmvtrinidad

ответ

0

Кроме того, необходимо создать Owin класс запуска. Я поставлю здесь код для этого (вид же как ваш): -

<script src="~/Scripts/jquery-1.10.2.min.js"></script> 
    <script src="~/Scripts/jquery.signalR-2.1.2.min.js"></script> 
    <script src="/signalr/hubs"></script> 

    <script type="text/javascript"> 
     $(function() { 

      var proxy = $.connection.notificationHub; 
      alert(proxy); 
      $("#button1").click(function() { 
       alert($("#text1").val()); 
       proxy.server.sendNotifications($("#text1").val()); 
       alert(12); 
      }); 
      $.connection.hub.start(); 

      alert(14); 
     }); 
    </script> 

Уведомление Hub как:

public class NotificationHub : Hub 
{ 
    public void Hello() 
    { 
     Clients.All.hello(); 
    } 

    public void SendNotifications(string message) 
    { 
     Clients.All.receiveNotification(message); 
    } 
} 

Теперь Большинство importnant вам нужно создать Owin класс запуска, чтобы начать сигнал r, код:

public void Configuration(IAppBuilder app) 
    { 
     app.MapSignalR(); 
    } 
+0

Просто установите из nuget: - install-package Microsoft Asp.Net SignalR, установочный пакет Microsoft.Owin и install-package Microsoft.Owin.Security. если они говорят, что уже установлены, используйте запрос для их обновления. –

+0

Можете ли вы рассказать мне шаги – Cheppy

+0

Хорошо, я дам вам шаги, расскажите, пожалуйста, какую версию Visual Studio вы используете? –

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