Gói chính thức · Framework
Hub kiểu SignalR cho ASP.NET Core và Blazor
Viết hub bằng API SignalR quen thuộc: Clients.All, nhóm, người dùng, hub có kiểu và IHubContext. Máy chủ của bạn vẫn xử lý các lời gọi hub, không cần máy chủ WebSocket, backplane hay Azure SignalR Service.
Hibira.AspNetCoreNuGet ↗GitHub ↗
- HibiraHub dùng giống Hub của SignalR, và MapHibiraHub<T>() ánh xạ nó cạnh các endpoint khác.
- Hibira.Client có API client của SignalR cho Blazor WebAssembly, Blazor Server, MAUI và ứng dụng console; trong trình duyệt thì dùng hibira-hub.js.
- Gói Hibira gửi sự kiện, ký kênh, xác minh webhook và gửi yêu cầu phê duyệt. Hỗ trợ .NET 8 trở lên.
Đăng nhập để xem các đoạn mã này với host cụm của riêng bạn. Đăng nhập
Cài đặt
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.ioThiết lập
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");Sử dụng
// 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(); } }
Trước khi bắt đầu
- Secret của ứng dụng chỉ hiện một lần, khi bạn tạo ứng dụng hoặc xoay vòng secret. Hãy giữ nó trên máy chủ, không bao giờ đưa vào trình duyệt hay bản build game.
- Với gói Free, hãy thêm mọi origin mà trang của bạn tải từ đó vào Origin được phép của ứng dụng (https://localhost:5001 khi phát triển, sau đó là tên miền của bạn). "*" cần gói trả phí.
Dùng app key từ bảng điều khiển; secret chỉ để trên máy chủ của bạn. Kênh, sự kiện và endpoint xác thực hoạt động y như với Pusher. Tạo tài khoản miễn phí →