SignalR中Hub的骨干模型

时间:2012-01-07 20:21:36

标签: asp.net-mvc backbone.js signalr

如何在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

2 个答案:

答案 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包。