> 백엔드 개발 > C++ > SignalR Hub 메서드를 ASP.NET Core 컨트롤러에 어떻게 통합할 수 있나요?

SignalR Hub 메서드를 ASP.NET Core 컨트롤러에 어떻게 통합할 수 있나요?

Barbara Streisand
풀어 주다: 2025-01-05 04:20:40
원래의
390명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿