Bu proje, .NET 8 API kullanarak gerçek zamanlı iletişim sağlayan bir sunucu, bir Worker Service ve MVC Web tabanlı iki istemci içermektedir. SignalR kütüphanesi, veri akışlarını ve kullanıcı etkileşimlerini anlık olarak yönetmek için kullanılmaktadır.
Projemizin temel amacı, gerçek zamanlı uygulamaların nasıl oluşturulacağını ve yönetileceğini göstermektir. SignalR'ın güçlü özelliklerini kullanarak, kullanıcıların birbiriyle etkileşimde bulunabileceği dinamik bir platform sunmayı hedefliyoruz.
Gerçek zamanlı veri akışının önemi günümüzde giderek artmaktadır. Bu proje, bu ihtiyaca yanıt vermek ve geliştiricilere SignalR ile çalışma konusunda rehberlik etmek için tasarlanmıştır.
- .NET 8 API Sunucusu: Bu sunucu, SignalR Hub'ını barındırır ve istemciler arasındaki iletişimi yönetir. Gerçek zamanlı veri akışını ve etkileşimli kullanıcı deneyimlerini mümkün kılar.
- Worker Service: Uygulamanın arka plan işlemlerini yürütür. Bu servis, uzun süreli işlemleri ve zaman alıcı görevleri etkin bir şekilde yönetir.
- MVC Web İstemcileri: Kullanıcıların web üzerinden sunucuyla etkileşime girebildiği iki ayrı istemci uygulamasıdır. Bu istemciler, kullanıcıların mesajlaşmasını ve sunucu tarafındaki veri akışlarını takip etmesini sağlar.
.NET 8 API ile oluşturulan sunucu, SignalR Hub'ını barındırır ve istemciler arası iletişimi koordine eder.
public class ChatHub : Hub
{
public async Task SendMessage(string user, string message)
{
await Clients.All.SendAsync("ReceiveMessage", user, message);
}
}
Arka plan işlemleri ve sunucu tarafı mantığı için kullanılır.
public class Worker : BackgroundService
{
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
// Arka plan işlemleri
}
}
}
Kullanıcıların mesajlaşmasını ve sunucu ile etkileşimde bulunmasını sağlayan web istemcisi.
@{
ViewData["Title"] = "Chat Page";
}
<div id="chatWindow">
<!-- Chat mesajları burada görüntülenecek -->
</div>
<input type="text" id="messageInput" />
<button onclick="sendMessage()">Gönder</button>
@section Scripts {
<script src="~/js/chat.js"></script>
}
Projeyi kullanmak için aşağıdaki adımları takip edin:
- Projeyi GitHub'dan klonlayın.
- Gerekli paketleri yükleyin.
- Sunucu ve istemcileri başlatın.
- Web istemcileri üzerinden sunucuya bağlanın ve gerçek zamanlı iletişimi deneyimleyin.
Projeyi geliştirmek için aşağıdaki yönergeleri izleyebilirsiniz:
- Yeni özellikler eklemek için sunucu ve istemci kodlarını inceleyin.
- SignalR dokümantasyonunu kullanarak yeni Hub metodları oluşturun.
- MVC istemcilerine yeni kullanıcı arayüzleri ekleyin.
- Worker Service'i genişleterek arka plan işlemlerini optimize edin.
Projeye katkıda bulunmak isteyenler için:
- İssue tracker üzerinden mevcut sorunları inceleyin.
- Forklayın ve özellik/fix branch'leri oluşturun.
- Pull request gönderin.
Bu proje MIT Lisansı altında lisanslanmıştır.
Bu README.md
dosyası, projenizin genel bir özetini ve nasıl kullanılacağına dair temel bilgileri içermektedir. Daha fazla detay eklemek veya özelleştirmek isterseniz, lütfen bana bildirin. Yardımcı olmaktan mutluluk duyarım!