SignalR
https://docs.microsoft.com/en-us/aspnet/core/tutorials/signalr-typescript-webpack?view=aspnetcore-3.0&tabs=visual-studio
BACKEND:
Microsoft.AspNetCore.SignalR (1.1.0) API ir WEB projektuose
services.AddSignalR().AddJsonProtocol(config =>
{
config.PayloadSerializerSettings.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter());
});
services.AddScoped<SablonaiHub, SablonaiHub>();
app.UseSignalR(routes =>
{
routes.MapHub<SablonaiHub>("/hubs/sablonai");
});
public class SablonaiHub : Hub
{
private readonly IHubContext<SablonaiHub> hubContext;
public SablonaiHub(IHubContext<SablonaiHub> hubContext)
{
this.hubContext = hubContext;
}
public async Task Updated(string message)
{
await hubContext.Clients.All.SendAsync("updated", message);
}
}
FRONTEND:
"@microsoft/signalr": "3.0.0"
const initializeSignalR = () => {
const url = `/hubs/sablonai`;
const connection = new signalR.HubConnectionBuilder()
.withUrl(`${process.env.PUBLIC_URL}${url}`)
.configureLogging(signalR.LogLevel.Information)
.build();
connection.on('updated', async (message: string) => {
const response: IStudyDescriptionTemplate[] = await api.study.getStudyDescriptionTemplates();
setTemplates(response);
});
connection.start().catch(err => console.warn('err', err));
return connection;
};
initializeData();
const connection = initializeSignalR();
return () => {
connection.stop();
};
Last updated
Was this helpful?