1

このスクリプトを、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

4

2 に答える 2

2

デフォルト設定を使用する場合、SignalRは最初にWebSocketポーリングをサーバーに送信しようとします。:55885は、単にサーバーのポート番号です。Websocketプロトコルは、101の応答ステータスコードを想定しています(http://dev.w3.org/html5/websockets/を参照)。

IISを実行している場合、WebサーバーでASP.NET4.5を使用してWindows8を実行しない限り、Webソケット要求を認識せず(推測を開始)、通常のget要求として処理し、ステータスコード200(OK)(推測を終了)を返します。 WebSocketイニシエーターの目には予期しない応答です。これが発生すると、SignalRは代わりにlongpollingにフォールバックします。

これはあなたの質問に答えないかもしれませんが、あなたが得るエラーを理解するのに役立ちます(これはおそらくあなたのコードが機能しない理由ではありません)

于 2012-01-22T20:08:46.017 に答える
0

また、Backbone.js/SignalR 統合 Nuget パッケージであるhttp://srtsolutions.github.com/backbone.signalr/も確認してください。

于 2013-01-07T19:57:06.330 に答える