官方套件 · 框架
ASP.NET Core 與 Blazor 的 SignalR 風格 Hub
用您熟悉的 SignalR API 寫 Hub:Clients.All、群組、使用者、強型別 Hub 與 IHubContext。Hub 呼叫照樣由您的伺服器處理,不必架 WebSocket 伺服器、backplane 或 Azure SignalR Service。
Hibira.AspNetCoreNuGet ↗GitHub ↗
- HibiraHub 的用法和 SignalR 的 Hub 一樣,MapHibiraHub<T>() 把它掛在其他端點旁邊。
- Hibira.Client 提供 SignalR 用戶端 API,適用 Blazor WebAssembly、Blazor Server、MAUI 與主控台應用程式;瀏覽器端則用 hibira-hub.js。
- Hibira 套件可發布事件、簽署頻道、驗證 Webhook 並發出核准請求。支援 .NET 8 以上。
登入後,範例程式碼會自動帶入您的叢集主機。 登入
安裝
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設定
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");使用
// 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,之後是您的網域)。"*" 需要付費方案。
請使用儀表板中的應用程式 Key;Secret 只放在你的伺服器上。頻道、事件與授權端點的用法和 Pusher 完全相同。 免費建立帳號 →