枢纽模型从集线器在SignalR

枢纽模型从集线器在SignalR

问题描述:

我如何创建/转换成可以使用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开发人员的职位描述,而不是你在*上要求的职位描述。 – 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

如果使用默认设置,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

同样的错误,检查出http://srtsolutions.github.com/backbone.signalr/这是一个Backbone.js的/ SignalR集成Nuget包。