SignalR Nedir?
SignalR, sunucu ile istemci arasında gerçek zamanlı çift yönlü iletişim sağlar. WebSocket, Server-Sent Events veya Long Polling'i otomatik seçer.
Hub Tanımlama
public class ChatHub : Hub {
public async Task MesajGonder(string kullanici, string mesaj) {
await Clients.All.SendAsync("MesajAl", kullanici, mesaj);
}
public async Task GrubaKatil(string grupAdi) {
await Groups.AddToGroupAsync(Context.ConnectionId, grupAdi);
}
}Program.cs
builder.Services.AddSignalR();
app.MapHub<ChatHub>("/chatHub");JavaScript İstemci
const connection = new signalR.HubConnectionBuilder()
.withUrl("/chatHub")
.build();
connection.on("MesajAl", (kullanici, mesaj) => {
document.getElementById("chat").innerHTML +=
`<p><b>${kullanici}:</b> ${mesaj}</p>`;
});
await connection.start();
document.getElementById("btnGonder").onclick = async () => {
await connection.invoke("MesajGonder", "Ali", document.getElementById("mesaj").value);
};