如何在Backbone中创建/转换此脚本到可以使用SignaR Hub的模型?例如:
<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
答案 0 :(得分:1)
如果使用默认设置,SignalR将首先尝试向服务器发送websockets轮询。 :55885只是服务器的端口号。 Websockets协议期望响应状态代码为101(请参阅http://dev.w3.org/html5/websockets/)。
如果运行IIS,除非您使用ASP.NET 4.5运行Windows 8,否则它将无法识别Web套接字请求并(开始猜测)将其视为正常的get请求并返回状态代码200(OK)(结束)推测)这是websockets发起者眼中的意外反应。当发生这种情况时,SignalR会回到longpolling。
这可能无法解答您的问题,但它可以帮助您了解您获得的错误(这可能不是您的代码无法正常工作的原因)
答案 1 :(得分:0)
另外,请查看http://srtsolutions.github.com/backbone.signalr/这是一个Backbone.js / SignalR集成Nuget包。