Server
Update Program.cs
services.AddSignalR();
//...
// what is UseDefaultFiles for?
app.UseDefaultFiles();
app.UseStaticFiles();
app.MapHub<ChatHub>("/hub");
Create ChatHub.cs
using Microsoft.AspNetCore.SignalR;
namespace Teach.WebApi.Hubs;
public class ChatHub : Hub
{
public async Task NewMessage(long username, string message) =>
await Clients.All.SendAsync("messageReceived", username, message);
}
Client
npm i -S @microsoft/signalr
Links
See https://docs.microsoft.com/en-us/aspnet/core/signalr/introduction?view=aspnetcore-5.0
JavaScript client https://docs.microsoft.com/en-us/aspnet/core/signalr/javascript-client?view=aspnetcore-5.0
Hubs https://docs.microsoft.com/en-us/aspnet/core/signalr/hubs?view=aspnetcore-5.0
Create a new webapp
project ASP.NET Core Project
Check if libman
is installed with libman --version
dotnet tool install -g Microsoft.Web.LibraryManager.Cli
Install client JavaScript files:
libman install @microsoft/signalr@latest -p unpkg -d wwwroot/js/signalr --files dist/browser/signalr.js --files dist/browser/signalr.min.js
Build and Start
dotnet watch run -p SignalRChat.csproj