0

我正在使用信號r發送通知來創建應用程序。我正在使用VS 2012.在我的Notification視圖中,我在@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()未被調用,並且通知未發送到客戶端。

這是中心類

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

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

有人可以幫我解決

+0

您應該爲'receiveNotification'的JavaScript代碼添加處理程序。 – 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> 

通知中心一樣:

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安裝: - 安裝包Microsoft Asp.Net SignalR,安裝包Microsoft.Owin和安裝包Microsoft.Owin.Security。如果他們說已經安裝,然後使用查詢來更新它們。 –

+0

你能告訴我的步驟 – Cheppy

+0

好吧,我會給你的步驟,你會告訴我你正在使用哪個版本的Visual Studio? –