0

現在取り組んでいるプロジェクトで SignalR ライブラリを使用しようとしています。私はいくつかのブログを読み、いくつかのスタックオーバーフローの回答を見て、シグナルのドキュメントをチェックしましたが、運がありませんでした。以下のコードは、私が動作させようとしている最も単純なサンプルにすぎません。

ハブ、jquery 2.0.0、ASP.NET MVC2、.NET Framework 4 で SignalR 1.0.1 を使用していますUrl.Content("~/signalr/hubs")。ページのソース コードで signalr/hubs をクリックすると、SignalR によって生成された js コードが表示されます。

RouteTable.Routes.MapHubs();Application_Start() My Hub の先頭にも追加しました。

public class Chat : Hub
{
    public void Send()
    {
        Clients.All.addMessage();
    }
}

jQuery ドキュメント準備ブロック内のクライアント コード

$(function() {
    var chat = $.connection.chat;

    chat.client.addMessage = function() {
        console.log("hello here");
    };

    $.connection.hub.logging = true;
    $.connection.hub.error(function() {
        console.log("An error occured1");
    });
    $.connection.hub.start()
        .done(function() {
            alert("Now connected!");
        })
        .fail(function() {
            console.log("Could not connect");
        });
});

問題は、 http://localhost/EC/signalr/negotiateステータス 200 OK を返しますが、応答本文が空であるため、接続が作成されないことです。

を設定しようとしましたrunAllManagedModulesForAllRequests="true"が、何も変更しませんでした。また、試し$.connection.hub.url = 'http://localhost/EC/signalr';ましたが、効果はありませんでした。

また、ハブ クラスを Hubs フォルダーまたはプロジェクトのルートに保持しました。

アイデアが不足しているため、解決策を探す方法と場所を教えていただければ幸いです。

4

2 に答える 2

0

@suleks 、

あなたのページに「signalr/hubs」スクリプトがありませんか?

<script src="signalr/hubs" type="text/javascript"></script>
于 2013-04-30T11:48:16.623 に答える