1

如何在可以使用 SignaR 集线器的 Backbone 中创建/将此脚本转换为模型?例如:

<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

4

2 回答 2

2

如果您使用默认设置,SignalR 将首先尝试向服务器发送 websockets 轮询。:55885 只是服务器的端口号。Websockets 协议要求响应状态码为 101(参见http://dev.w3.org/html5/websockets/)。

如果运行 IIS,除非您使用 ASP.NET 4.5 您的网络服务器运行 Windows 8,否则它将无法识别 Web 套接字请求并且(开始推测)将其视为正常的获取请求并返回状态代码 200(OK)(结束推测)在 websockets 发起者的眼里是一个意想不到的反应。当这种情况发生时,SignalR 会转而使用长轮询。

这可能无法回答您的问题,但它会帮助您理解您遇到的错误(这可能不是您的代码不起作用的原因)

于 2012-01-22T20:08:46.017 回答
0

此外,请查看http://srtsolutions.github.com/backbone.signalr/这是一个 Backbone.js/SignalR 集成 Nuget 包。

于 2013-01-07T19:57:06.330 回答