官方包 · 框架
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 完全相同。 免费创建账号 →