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

SignalR Hub メソッドを ASP.NET Core コントローラーに統合するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-05 04:20:40
オリジナル
348 人が閲覧しました

How Can I Integrate SignalR Hub Methods into ASP.NET Core Controllers?

SignalR Hub メソッドの ASP.NET Core コントローラーへの統合

この調査では、ASP.NET 内での SignalR Core Hub メソッドの統合について詳しく説明します。コアコントローラー。具体的な使用例には、タスク完了時に外部プログラムと対話する Windows サービスからポスト リクエストを受信し、接続されている SignalR クライアントにこの情報をブロードキャストすることが含まれます。

解決策 1: HubContext に直接アクセスする

IHubContext インターフェイスをコントローラー:

public VarDesignCommController(IHubContext<VarDesignHub> hubcontext)
{
    HubContext = hubcontext;
    ...
}

private IHubContext<VarDesignHub> HubContext
{ get; set; }
ログイン後にコピー

次に、以下を使用してすべてのクライアントでメソッドを直接呼び出します:

await this.HubContext.Clients.All.InvokeAsync("Completed", id);
ログイン後にコピー

このアプローチでは、接続されているすべてのクライアントでメソッドが実行され、シンプルで迅速なソリューションが提供されます。

解決策 2: 型付きハブの活用

インターフェイスを定義するクライアントでのサーバー側のメソッド呼び出しを表現するには:

public interface ITypedHubClient
{
    Task BroadcastMessage(string name, string message);
}
ログイン後にコピー

Hub から継承するハブを作成します:

public class ChatHub : Hub<ITypedHubClient>
{
    public void Send(string name, string message)
    {
        Clients.All.BroadcastMessage(name, message);
    }
}
ログイン後にコピー

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

public class DemoController : Controller
{
    IHubContext<ChatHub, ITypedHubClient> _chatHubContext;
    public DemoController(IHubContext<ChatHub, ITypedHubClient> chatHubContext)
    {
        _chatHubContext = chatHubContext;
    }

    [HttpGet]
    public IEnumerable<string> Get()
    {
        _chatHubContext.Clients.All.BroadcastMessage("test", "test");
        return new string[] { "value1", "value2" };
    }
}
ログイン後にコピー

このアプローチでは、型付きハブ クライアントを利用し、より優れた制御と読みやすさ。

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

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