공식 패키지 · 프레임워크

ASP.NET Core와 Blazor를 위한 SignalR 스타일 허브

익숙한 SignalR API로 허브를 작성하세요. Clients.All, 그룹, 사용자, 타입 허브, IHubContext가 그대로 동작하고, 허브 호출은 계속 서버에서 처리합니다. WebSocket 서버, 백플레인, Azure SignalR Service가 필요 없습니다.

  • HibiraHub는 SignalR의 Hub처럼 동작하며, MapHibiraHub<T>()로 다른 엔드포인트 옆에 매핑합니다.
  • Hibira.Client는 Blazor WebAssembly, Blazor Server, MAUI, 콘솔 앱에 SignalR 클라이언트 API를 제공하고, 브라우저에서는 hibira-hub.js가 같은 일을 합니다.
  • Hibira 패키지로 이벤트 전송, 채널 서명, 웹훅 검증, 승인 요청을 할 수 있습니다. .NET 8 이상을 지원합니다.

로그인하면 예제 코드에 내 클러스터 호스트가 채워집니다. 로그인

  1. 설치

    dotnet add package Hibira.AspNetCore --version 0.1.0
    dotnet add package Hibira.Client --version 0.1.0   # Blazor or other .NET clients
    
    dotnet user-secrets set Hibira:AppId YOUR_APP_ID
    dotnet user-secrets set Hibira:Key YOUR_APP_KEY
    dotnet user-secrets set Hibira:Secret YOUR_APP_SECRET
    dotnet user-secrets set Hibira:Host ws.hibira.io
  2. 설정하기

    using Hibira.AspNetCore;
    
    public class ChatHub : HibiraHub
    {
        public Task SendMessage(string user, string message) =>
            Clients.All.SendAsync("ReceiveMessage", user, message);
    }
    
    // Program.cs
    builder.Services.AddHibira(); // reads the "Hibira" section
    var app = builder.Build();
    app.UseStaticFiles();          // serves hibira-hub.js
    app.MapHibiraHub<ChatHub>("/hubs/chat");
  3. 사용하기

    // A Blazor component: Microsoft's SignalR tutorial with one using changed
    @using Hibira.Client
    @inject NavigationManager Navigation
    
    @code {
        private HubConnection? hub;
        private readonly List<string> messages = new();
    
        protected override async Task OnInitializedAsync()
        {
            hub = new HubConnectionBuilder()
                .WithUrl(Navigation.ToAbsoluteUri("/hubs/chat"))
                .WithAutomaticReconnect()
                .Build();
            hub.On<string, string>("ReceiveMessage", (user, message) =>
            {
                messages.Add($"{user}: {message}");
                InvokeAsync(StateHasChanged);
            });
            await hub.StartAsync();
        }
    }

시작하기 전에

  • 앱 시크릿은 앱을 만들거나 시크릿을 교체할 때 한 번만 표시됩니다. 서버에만 두고, 브라우저나 게임 빌드에는 절대 넣지 마세요.
  • Free 요금제에서는 페이지를 불러오는 모든 오리진을 앱의 허용 오리진에 등록하세요(개발 중에는 https://localhost:5001, 이후에는 내 도메인). "*"는 유료 요금제에서 쓸 수 있습니다.

대시보드의 앱 키를 사용하세요. 시크릿은 서버에만 둡니다. 채널, 이벤트, 인가 엔드포인트는 Pusher와 똑같이 동작합니다. 무료 계정 만들기 →