Cevap Geçmişi
03.11.20 00:28
Öncelikle JavaScript mutlaka öğrenilmesi ve kullanılması gereken bir dildir. Çok farklı teknolojiler (örneğin sadece SignalR gibi Microsoft teknolojileri değil) JavaScript ile çalışır. Eğer illaki istemci tarafındaki kodu C# ile yazmak isterseniz Blazor kullanabilirsin. Blazor WebAssembly ve Razor sayfaları ile çalışır. Yeni bir teknolojidir. Verdiğim bağlantıdaki anlatım çeviri olacağından karmaşık gelebilir. Türkçe sayfalarda Blazor kelimesini aratırsanız bazı basit örnekler bulursunuz. Mesajın sadece seçilmiş üyelere gitmesini isterseniz, üyeleri gruplara ayırın veya her birine ayrı ayrı gönderin. Aşağıda mesaj gönderme örnekleri var. // Herkese mesaj göndermek.
public Task SendMessage(string user, string message)
{
return Clients.All.SendAsync("ReceiveMessage", user, message);
}
// Mesaj gönderenin kendisine mesaj göndermek.
public Task SendMessageToCaller(string user, string message)
{
return Clients.Caller.SendAsync("ReceiveMessage", user, message);
}
// Gruba mesaj göndermek.
public Task SendMessageToGroup(string user, string message)
{
return Clients.Group("SignalR Users").SendAsync("ReceiveMessage", user, message);
}
// Tek kullanıcıya mesaj göndermek.
public Task DirectMessage(string user, string message)
{
return Clients.User(user).SendAsync("ReceiveMessage", user, message);
}
// Bağlantı sırasında kullanıcıyı gruba eklemek.
public override async Task OnConnectedAsync()
{
await Groups.AddToGroupAsync(Context.ConnectionId, "SignalR Users");
await base.OnConnectedAsync();
}
// Bağlantısı kesileni gruptan çıkarmak.
public override async Task OnDisconnectedAsync(Exception exception)
{
await Groups.RemoveFromGroupAsync(Context.ConnectionId, "SignalR Users");
await base.OnDisconnectedAsync(exception);
}
Kaynak: https://github.com/dotnet/AspNetCore.Docs/blob/master/aspnetcore/signalr/hubs/sample/Hubs/ChatHub.cs
Ekleyen: cevapsitesi
Değiştiren: cevapsitesi
Cevap olarak seçen: cevapsitesi
02.11.20 21:27
Öncelikle JavaScript mutlaka öğrenilmesi ve kullanılması gereken bir dildir. Çok farklı teknolojiler (örneğin sadece SignalR gibi Microsoft teknolojileri değil) JavaScript ile çalışır. Eğer illaki istemci tarafındaki kodu C# ile yazmak isterseniz Blazor kullanabilirsin. Blazor WebAssembly ve Razor sayfaları ile çalışır. Yeni bir teknolojidir. Verdiğim bağlantıdaki anlatım çeviri olacağından karmaşık gelebilir. Türkçe sayfalarda Blazor kelimesini aratırsanız bazı basit örnekler bulursunuz. Mesajın sadece seçilmiş üyelere gitmesini isterseniz, üyeleri gruplara ayırın veya her birine ayrı ayrı gönderin. Aşağıda mesaj gönderme örnekleri var. // Herkese mesaj göndermek. public Task SendMessage(string user, string message) { return Clients.All.SendAsync("ReceiveMessage", user, message); } // Mesaj gönderenin kendisine mesaj göndermek. public Task SendMessageToCaller(string user, string message) { return Clients.Caller.SendAsync("ReceiveMessage", user, message); } // Gruba mesaj göndermek. public Task SendMessageToGroup(string user, string message) { return Clients.Group("SignalR Users").SendAsync("ReceiveMessage", user, message); } // Tek kullanıcıya mesaj göndermek. public Task DirectMessage(string user, string message) { return Clients.User(user).SendAsync("ReceiveMessage", user, message); } // Bağlantı sırasında kullanıcıyı gruba eklemek. public override async Task OnConnectedAsync() { await Groups.AddToGroupAsync(Context.ConnectionId, "SignalR Users"); await base.OnConnectedAsync(); } // Bağlantısı kesileni gruptan çıkarmak. public override async Task OnDisconnectedAsync(Exception exception) { await Groups.RemoveFromGroupAsync(Context.ConnectionId, "SignalR Users"); await base.OnDisconnectedAsync(exception); }
Ekleyen: cevapsitesi
En fazla 3 eski durum gösterilir.