0

私は MVC4 で SignalR を数週間使用してきましたが、簡単なセットアップに関してはほとんど成功しています。1 つのページ設定とハブを使用して、サーバーからすべてのクライアントにメッセージを送信するのに問題はありませんでした。

私が取り組んでいる現在のプロジェクトでは、グループを使用しようとしているので、クライアント接続を開始した後、そのようにサーバーに電話をかけようとします。

私の_Layout.cshtmlで

 var dashboardhub;
    $(document).ready(function () {
        dashboardhub = $.connection.dashboardHub;

        dashboardhub.client.connect = function () { };
        window.hubReady = $.connection.hub.start();
 }); 

私のIndex.cshtmlで

window.hubReady.done(function () {
            dashboardhub.server.addGroup('@ViewContext.RouteData.Values["area"].ToString()');
        }).fail(function () {
            console.log('connection failed');
        }); 

私の DashboardHub クラスで

public class DashboardHub : Hub {        

    /// <summary>
    /// Constructor
    /// </summary>
    public DashboardHub() {            

    }

    public void AddGroup(string group) {            
        this.Groups.Add(Context.ConnectionId, group);            
    }
}

クライアント側で dashboardhub.server.addGroup が起動されると、サーバー メソッド AddGroup にヒットすることはありません。これは明らかにグループの作成を困難にしています。

何かが欠けている可能性は非常に高いですが、それが何であるかは完全にはわかりません。任意のポインタは非常に高く評価されます。

編集:無意味な投稿で申し訳ありません。例外をスローしているハブ コンストラクターに何かがありましたが、それはほとんど明らかではありませんでした。投稿したコードには明らかに含まれていませんが、基本的には、コンストラクターで null のオブジェクトに PropertyChanged イベント ハンドラーを追加しました。これは基本的にハブ全体を壊し、サーバー呼び出しを許可しませんでした。

4

1 に答える 1