2012-12-14 57 views
2

我試圖使用signalR集線器實現推送通知。我有一個示例代碼,當我運行時,出現錯誤,說 JavaScript運行時錯誤:'Rx'未定義使用signalR集線器時Rx未定義錯誤

此錯誤出現在dynamic signalr/hubs文件中。 我已經添加了所有必要的Javascript引用,即jquery,signalR和signalr/hubs。

我在想什麼?

我的代碼看起來是這樣的:

Global.asax文件有這個

public class Global : System.Web.HttpApplication 
    { 

     protected void Application_Start(object sender, EventArgs e) 
     { 


      RouteTable.Routes.MapHubs("~/signalr"); 


     } 

我中心是這樣

[HubName("HealthCheck")] 
    public class MyConnectionClass : Hub 
    { 
     public static List<string> messages = new List<string>(); 

     public void GetServiceState() 
     { 
      Clients.updateMessages(messages); 
     } 

     public void UpdateServiceState() 
     { 
      messages.Add(DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss")); 

      Clients.updateMessages(messages); 
     } 

定義和我的JavaScript客戶端這樣的

$(function() { 
       // creates a proxy to the health check hub 
       var healthCheckHub = $.connection.healthCheck; 

       // handles the callback sent from the server 
       healthCheckHub.updateMessages = function (data) { 
        $("li").remove(); 

        $.each(data, function() { 
         $('#messages').append('<li>' + this + '</li>'); 
        }); 
       }; 

       $("#trigger").click(function() { 
        healthCheckHub.server.updateServiceState(); 
       }); 

       // Start the connection and request current state 
       $.connection.hub.start(function() { 
        healthCheckHub.server.getServiceState(); 
       }); 
      }); 

我還在客戶端添加了所有必需的js引用。 我從here 中挑選了這個樣本這樣就夠了,還是我錯過了一些東西?

感謝

+0

您可以發佈最少代碼示例再現問題? – Pete

回答

0

考慮到誤差約爲未被定義的Rx我想知道,如果你可能已經安裝了錯誤的NuGet包。這聽起來像你安裝了SignalR.Reactive

我認爲this是你真正想要的包。 (請注意,這是一個預發佈版本,我認爲軟件包名稱在最近發生了變化,因此您所遵循的教程可能會稍微過時,這可能是導致混淆的原因。)