ホームページ > バックエンド開発 > C++ > ASP.NET Core コントローラーから SignalR Core ハブ メソッドを呼び出すにはどうすればよいですか?

ASP.NET Core コントローラーから SignalR Core ハブ メソッドを呼び出すにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-04 09:13:34
オリジナル
870 人が閲覧しました

How Can I Call a SignalR Core Hub Method from an ASP.NET Core Controller?

コントローラーから SignalR Core Hub メソッドを呼び出す

ASP.NET Core アプリケーションでは、多くの場合、コントローラーから SignalR ハブと通信する必要があります。サーバー側のイベントでクライアント側のアプリケーションを更新します。これを実現するための 2 つのアプローチを次に示します。

解決策 1: 型なしの HubContext を使用する

この方法では、接続されているすべてのクライアントでメソッドを直接呼び出すことができます。型なしの IHubContext を挿入します。

public class VarDesignCommController : Controller
{
    private readonly IHubContext<VarDesignHub> _hubContext;

    public VarDesignCommController(IHubContext<VarDesignHub> hubContext)
    {
        _hubContext = hubContext;
    }

    [HttpPut("ProcessVarDesignCommResponse/{id}")]
    public async Task<IActionResult> ProcessVarDesignCommResponse(int id)
    {
        await _hubContext.Clients.All.InvokeAsync("TaskCompleted", id);

        return new JsonResult(true);
    }
}
ログイン後にコピー

解決策 2: 型付きハブとインターフェイスを使用する

このアプローチでは、型付きハブとインターフェイスを使用して、呼び出すことができるクライアント側のメソッドを定義します。コントローラーから。

ハブのインターフェイスを作成しますクライアント:

public interface ITypedHubClient
{
    Task TaskCompleted(int id);
}
ログイン後にコピー

ハブから継承型指定されたクライアント インターフェイスを使用して:

public class VarDesignHub : Hub<ITypedHubClient>
{
    public async Task TaskCompleted(int id)
    {
        await Clients.All.InvokeAsync("Completed", id);
    }
}
ログイン後にコピー

型指定されたハブ コンテキストをコントローラーに挿入します:

public class VarDesignCommController : Controller
{
    private readonly IHubContext<VarDesignHub, ITypedHubClient> _hubContext;

    public VarDesignCommController(IHubContext<VarDesignHub, ITypedHubClient> hubContext)
    {
        _hubContext = hubContext;
    }

    [HttpPut("ProcessVarDesignCommResponse/{id}")]
    public async Task<IActionResult> ProcessVarDesignCommResponse(int id)
    {
        await _hubContext.Clients.All.TaskCompleted(id);

        return new JsonResult(true);
    }
}
ログイン後にコピー

以上がASP.NET Core コントローラーから SignalR Core ハブ メソッドを呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート