2012-08-05 117 views
1

我試圖使用signalR首次然而,當我中心 'simpleEvent' 永遠是不確定的signalR未定義

$(文件)。就緒(函數(){

var simple = $.connection.simpleEvent; 

...

如果我轉到localhost/mywebapp/signalR/hubs,我收到以下錯誤消息:「無法從本地主機下載集線器,無法打開此Internet站點,請求的站點不可用或無法找到。 。但是,如果我再試一次,然後下載集線器,它看起來像它有相應的CT中心的信息,如

// Create hub signalR instance 
$.extend(signalR, { 
    simpleEvent: { 
     _: { 
      hubName: 'MyCorp.Siep.App.Web.UI.SimpleEventHub', 
      ignoreMembers: ['init', 'timerExpired', 'namespace', 'ignoreMembers', 'callbacks'], 
      connection: function() { return signalR.hub; } 
     }, 

     init: function (callback) { 
      return serverCall(this, "Init", $.makeArray(arguments)); 
     }, 

     timerExpired: function (state, callback) { 
      return serverCall(this, "TimerExpired", $.makeArray(arguments)); 
     } 
    } 
}); 

signalR.hub = signalR("/App.Web.UI/signalr") 
    .starting(function() { 
     updateClientMembers(signalR); 
    }) 
    .sending(function() { 
     var localHubs = []; 

     $.each(hubs, function (key) { 
      var methods = []; 

      $.each(this, function (key) { 
       if (key === "obj") { 
        return true; 
       } 

       methods.push(key); 
      }); 

      localHubs.push({ name: key, methods: methods }); 
     }); 

     this.data = window.JSON.stringify(localHubs); 
    }) 
    .received(function (result) { 
     var callbackId, cb; 
     if (result) { 
      if (!result.Id) { 
       executeCallback(result.Hub, result.Method, result.Args, result.State); 
      } else { 
       callbackId = result.Id.toString(); 
       cb = callbacks[callbackId]; 
       if (cb) { 
        callbacks[callbackId] = null; 
        delete callbacks[callbackId]; 
        cb.callback.call(cb.scope, result); 
       } 
      } 
     } 
    }); 

我已經試過了SignalR樣本,他們的工作很好,我已經閱讀了大量有關這個錯誤,其中大部分似乎是因爲不正確,其他論壇上的帖子,我假設如果我可以下載集線器,那麼這不是問題。還有什麼可能導致這個問題?

我試圖內使用signalR: - 一個Web應用項目 - Visual Studio 2010中部署服務器中運行,並且IIS 7 - Intenert Explorer 8中 - Windows 2008 Server的

任何幫助將不勝感激。

回答

0

檢查你的母版頁,你是否已經把正確的腳本引用

<script src="../Scripts/jquery-1.6.4.js" type="text/javascript"></script> 
<script src="../Scripts/jquery.signalR.js" type="text/javascript"></script> 
<script src="../signalr/hubs" type="text/javascript"></script> 
0

以下文件是重要的(檢查正確的順序):

  1. jQuery的JS文件
  2. SignalR JS文件
  3. HubFile Optinal如果您正在使用生成的集線器。

這裏有一個例子:

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

檢查所引用的文件在目錄(也許你有一個控制檯錯誤引用的文件丟失

如果你正在使用。生成的集線器代理,重要的是您沒有禁用hubproxy文件的自動生成(路徑必須正確)

var hubConfiguration = new HubConfiguration(); 
hubConfiguration.EnableDetailedErrors = true; 
hubConfiguration.EnableJavaScriptProxies = false; 
app.MapSignalR("/signalr", hubConfiguration);