Profesyonel, yüksek performanslı gerçek zamanlı video görüşme, ses ve mesajlaşma platformu.
Modern glassmorphic Web Client ile standartlara uyumlu Windows C# Desktop Client birlikte, aynı odada çalışır.
Projeyi hemen test etmek için aşağıdaki adımları izleyebilirsiniz:
Herhangi bir kurulum yapmadan doğrudan tarayıcınızdan giriş yapabilirsiniz:
👉 WebRTC Pro Canlı Demo
- Bir Oda ID (örneğin:
oda1) ve Kullanıcı Adı girip "Bağlan" deyin. - "Görüşmeyi Başlat" butonu ile kameranızı aktif edin.
Tarayıcı ile Windows uygulaması arasında görüşmek için masaüstü istemcisini indirin:
👉 WebRTCWindowsClient_Release.zip İndir
- Zipli dosyayı indirin ve klasöre çıkarın.
WebRTCWindowsClient.exedosyasını çalıştırın.- Tarayıcıdakiyle aynı Oda ID'yi yazarak "Connect" butonuna basın.
- "Start Video Call" diyerek çapraz platform video görüşmesini başlatın!
| Özellik | Açıklama |
|---|---|
| Glassmorphic UI | Dark/Light tema, cam efekti, mikro-animasyonlar |
| Gerçek Zamanlı Video | Tarayıcı WebRTC API ile düşük gecikme |
| Ekran Paylaşımı | Doğrudan tarayıcıdan masaüstü paylaşımı |
| Sohbet Sistemi | Anlık mesajlaşma, XSS korumalı |
| Tam Responsive | Mobil, tablet ve masaüstü uyumlu |
| Özellik | Açıklama |
|---|---|
| WebRTC P2P | SDP Offer/Answer ve ICE candidate standartları |
| VP8 Video Codec | Karşı tarafın görüntüsünü decode edip gösterme |
| Lokal Video | Kamera görüntüsünü anında önizleme (PictureBox) |
| Hybrid Relay | Chrome uyumluluğu için optimize edilmiş akış teknolojisi |
graph TD
A[Web İstemcisi] <-->|SignalR Sinyalleşme| B[ASP.NET Core Sunucu]
C[Windows İstemcisi] <-->|SignalR Sinyalleşme| B
A <-->|WebRTC P2P Video| C
A <-->|WebRTC P2P Video| A2[Diğer Web İstemcisi]
| Yön | Teknoloji | Durum |
|---|---|---|
| Web ↔ Web | WebRTC P2P (VP8/Opus) | ✅ Aktif |
| Web ↔ Windows | WebRTC P2P (VP8) | ✅ Aktif |
| Windows ↔ Web | SignalR Relay (JPEG/Base64) | ✅ Aktif (Fallback) |
WebRTCProjesi/
├── WebRTCSignalServer/ # ASP.NET Core SignalR Sunucusu
│ ├── wwwroot/
│ │ ├── index.html # Web Client SPA
│ │ ├── css/ & js/ # Stil ve Mantık dosyaları
├── WebRTCWindowsClient/ # WinForms + SIPSorcery Desktop Client
│ ├── Form1.cs # Ana form mantığı
└── WebRTCWindowsClient_Release.zip # Derlenmiş hazır sürüm
| Endpoint | Metot | Açıklama |
|---|---|---|
/health |
GET |
Sunucu sağlık kontrolü |
/api/stats |
GET |
Aktif kullanıcı ve oda istatistikleri |
/webrtchub |
WS |
SignalR WebSocket Hub |
| Bileşen | Teknoloji | Versiyon |
|---|---|---|
| Sunucu | ASP.NET Core, SignalR Core | .NET 8.0 |
| Web Client | SignalR JS Client, Browser WebRTC API, Lucide Icons | — |
| Windows Client | SIPSorcery, SIPSorceryMedia.Windows, SIPSorceryMedia.Encoders | 10.x |
| İletişim | Microsoft.AspNetCore.SignalR.Client | 9.0.6 |
| Serileştirme | System.Text.Json | 9.0.6 |
| Endpoint | Metot | Açıklama |
|---|---|---|
/ |
GET |
Web Client (index.html) |
/health |
GET |
Sunucu sağlık kontrolü |
/api/stats |
GET |
Bağlı kullanıcı ve aktif oda sayısı |
/webrtchub |
WS |
SignalR WebSocket Hub |
| Metot | Yön | Açıklama |
|---|---|---|
JoinRoom |
Client → Server | Odaya katılma |
LeaveRoom |
Client → Server | Odadan ayrılma |
SendOffer |
Client → Client | WebRTC SDP Offer gönderme |
SendAnswer |
Client → Client | WebRTC SDP Answer gönderme |
SendIceCandidate |
Client → Client | ICE Candidate gönderme |
SendMessage |
Client → Client | Chat mesajı gönderme |
SendVideoFrame |
Client → Client | Base64 video frame aktarımı |
Sunucu varsayılan olarak port 5050 üzerinde çalışır. Bu, port 5000'in Windows/macOS sistemlerinde sıkça kullanılması nedeniyle tercih edilmiştir. Port değiştirmek için:
WebRTCSignalServer/Program.cs→app.Run("http://localhost:PORT")WebRTCSignalServer/wwwroot/index.html→ SignalR bağlantı URL'siWebRTCWindowsClient/Form1.cs→ Varsayılan sunucu URL'si
Proje, akıllı hibrit mimari kullanır:
- Saf WebRTC (P2P): Tarayıcılar arası ve tarayıcıdan Windows'a video akışı
- Base64 SignalR Fallback: Windows'tan tarayıcıya video akışı (~20 FPS, %60 JPEG)
Bu yaklaşım, SIPSorcery VP8 encoder'ın Chrome ile yaşadığı codec uyumsuzluğunu transparan şekilde çözer.
Her push ve pull_request işleminde otomatik olarak:
.NET 8 SDKkurulumuWebRTCSignalServerderlemesiWebRTCWindowsClientderlemesi
MIT License — Detaylar için LICENSE dosyasına bakın.
Geliştirici: Ferhat Ölmez