2012-01-07 81 views
0

我如何創建/轉換成可以使用SignaR集線器骨幹模型的腳本?例如:樞紐模型從集線器在SignalR

<script type="text/javascript"> 
    $(function() { 
     // Proxy created on the fly 
     var chat = $.connection.chat; 

     // Declare a function on the chat hub so the server can invoke it 
     chat.addMessage = function (message) { 
      alert("message"); 
     }; 

     // Start the connection 
     $.connection.hub.start(); 
    }); 
</script> 

編輯

我沒有想出這個:

window.Message = Backbone.Model.extend({ 
    hub: undefined, 
    initialize: function() { 
     this.hub = $.connection.message; 
    }, 
    addMessage: function (message) { 
     alert(message); 
    }, 
    connect: function() { 
     $.connection.hub.start(); 
     var messages = this.hub.getAll();//get messages 
    } 
}); 

但這不是由於以下錯誤工作:

此錯誤: :55885意外的迴應碼:200

+1

到目前爲止您嘗試過什麼?你的代碼遇到了什麼困難?你的問題看起來更像是一個你將發送給Web開發人員的職位描述,而不是你在StackOverflow上要求的職位描述。 – 2012-01-08 17:25:56

+0

根據我對backbone.js的瞭解,它需要一個寧靜的URL,因此這可能不會奏效。另外,我並不是使用ASP.NET MVC的backbone.js的粉絲,因爲它看起來像錘子釘子綜合徵。 ASP.NET MVC利用MVC自行完成。缺少來自Ajax調用的綁定數據,Knockout.js似乎更適合。骨幹一點也不壞,但是你最終會重複MVC服務器端,然後MVC客戶端,或者你繞過MVC服務器而轉向客戶端。 – LCarter 2012-01-13 14:35:28

回答

1

如果使用默認設置,SignalR將首先嚐試向服務器發送websockets輪詢。 The:55885只是你服務器的端口號。 Websockets協議預期響應狀態碼爲101(請參閱http://dev.w3.org/html5/websockets/)。

如果運行IIS,除非使用ASP.NET 4.5運行Windows 8 Web服務器,否則它將無法識別Web套接字請求並(開始猜測)將其視爲正常的請求並返回狀態代碼200(OK)(最終的猜測),這是Websockets發起人眼中的意外反應。當發生這種情況時,SignalR會回退到長音。

這可能不是回答你的問題,但它會幫助你瞭解你(這很可能不是爲什麼你的代碼不起作用的原因)

+0

THX我只是找到這個開源項目https://github.com/rickschott/fire-camp/tree/master/BackboneMVC3SignalR,幫助我很多。 – 2012-01-23 19:15:16