1

ASP.netアプリケーションでSignalrを使用しています。クライアントが接続するときに、クライアントをグループに追加してほしい。このようにして、メッセージをグループごとに分けることができます。次のコードについて2つの質問があります

public class MyHub : Hub, IDisconnect
{

    private IMyInterface x;
    public MyHub(IMyInterface y)
    {
       x = y;
    }

    public Task Join()
    {
        string group = x.getGroup();
        return Groups.Add(Context.ConnectionId, group);
    }

    public Task Send(string message)
    {
        string group = x.getGroup();
        return Clients[group].addMessage(message);
    }

    public Task Disconnect()
    {
        string group = x.getGroup();
        return Clients[group].leave(Context.ConnectionId);
    }
}
  1. クライアントが接続および切断したときに、Join()メソッドとDisconnect()メソッドが自動的に呼び出されますか?そうでない場合、私がそれを呼び出すのに最適な場所はどこですか?
  2. 依存関係を解決するためにninjectを使用していますが、上記のコードでは機能しません。ninjectをSignalerクラスで機能させるための追加の手順はありますか?

誰か?

4

1 に答える 1

0

Join() および Disconnect() メソッドは、クライアントが接続および切断するときに自動的に呼び出されますか? そうでない場合、どこから電話するのが最適ですか?

Join が標準のシグナル メソッドになることは認識していませんが、ハブからのクライアントの接続、再接続、および切断を検出するための例がドキュメントに記載されています。

public class Status : Hub, IDisconnect, IConnected
{
    public Task Disconnect()
    {
        return Clients.leave(Context.ConnectionId, DateTime.Now.ToString());
    }

    public Task Connect()
    {
        return Clients.joined(Context.ConnectionId, DateTime.Now.ToString());
    }

    public Task Reconnect(IEnumerable<string> groups)
    {
        return Clients.rejoined(Context.ConnectionId, DateTime.Now.ToString());
    }
}

これらは、クライアントの動作と構成に応じて自動的に呼び出されます。

于 2012-10-20T21:05:04.820 に答える