Yazılım.
CevapSitesi.com Beta!
Çözüm Noktası
Facebook, Twitter, Google+ veya e-posta ile paylaşın.
| Sorular | Makaleler | Üyeler | Etiketler  | İletişim
Soru sormak ya da cevap vermek için;
giriş yapın veya üye olun.

Sosyal medya hesaplarınızla da giriş yapabilirsiniz.
0

Signalr ile basit chat sitesi yaptım.Fakat mesajımın sadece seçilen kişilere gitmesini istiyorum.

Hocam iyi çalışmalar. Ben öğrenciyim. Kendimi geliştirmeye çalışıyorum. Bir web sitesi yapmaya çalışıyorum. Web sitemi Asp.Net ve Microsoft Visual studio ile gerçekleştirmekteyim .
 Projeme Hub ve startup sınıfını ekledim ve web sayfama java script kodlarını ekledim. 

İlk sorum şu signalr hub sınıfı c# tan çağrılamıyor  mu? Yani illa JavaScript ile fonksiyon yazmamız mı gerekiyor? Neden?
İkinci sorum şu chat sayfam çalışıyor yalnız sadece seçilmiş üyelere gitmesini istiyorum ? teşekkürler iyi çalışmalar.

Soran:02.11.20 15:33
misafir  

1 Cevap

0
Ö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


Cevaplayan: 02.11.20 21:27
cevapsitesi
102,034p 16ü
Cevabı seçen: 07.11.20 17:53
cevapsitesi   102,034p 16ü