0

Je crée une application en utilisant le signal r pour envoyer une notification. J'utilise VS 2012. Dans ma vue de notification, j'ai ajouté le code ci-dessous dans @model App.Models.Notification.Signal r notification

@{ 
    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" /> 
} 

Le clic du bouton, sendNotifications() n'est pas appelé et la notification ne lui envoie pas au client.

C'est la classe de plaque tournante

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

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

quelqu'un peut me aider avec une solution

+0

Vous devez ajouter un gestionnaire sur votre code JavaScript pour 'receiveNotification'. – janmvtrinidad

Répondre

0

Vous devez également créer une classe de démarrage owin. Je mettrai le code ici pour que (vue même que votre): -

<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 de notification comme:

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

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

Maintenant, la plupart vous importnant besoin de créer une classe de démarrage owin pour démarrer signal r, code comme:

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

Juste installer à partir de nuget: - installer-package Microsoft Asp.Net SignalR, installer-package Microsoft.Owin et installer-package Microsoft.Owin.Security. s'ils disent déjà installé, utilisez la requête pour les mettre à jour. –

+0

Pouvez-vous me dire les étapes – Cheppy

+0

Ok, je vais vous donner les étapes, pourriez-vous me dire quelle version de Visual Studio vous utilisez? –