• Buradasın

    Node.js ile Real-Time Chat Uygulaması Geliştirme Eğitimi

    youtube.com/watch?v=P7Xcojkp-vY

    Yapay zekadan makale özeti

    • Bu video, Batuhan İşıldak tarafından sunulan bir eğitim içeriğidir. Batuhan, hazırlık öğrencisi olup aynı zamanda Movation adlı bir şirkette full stack web uygulama geliştiricisi olarak çalışmaktadır.
    • Video, Node.js ve Socket.IO kullanarak real-time chat uygulaması geliştirme sürecini adım adım anlatmaktadır. İçerik, teorik bilgilerle başlayıp (Node.js'in tarihçesi, çalışma prensipleri, HTTP protokolleri), ardından pratik uygulamaya geçmektedir. Eğitmen, package.json dosyası oluşturma, gerekli paketleri yükleme, server ve client kodlarını yazma, kullanıcı bağlantıları, mesaj gönderme ve odalar oluşturma gibi konuları detaylı olarak açıklamaktadır.
    • Eğitimde ayrıca Express framework, CORS (Cross-Origin Resource Sharing) sorunları, WebSocket teknolojisi, hata ayıklama süreçleri ve uygulamanın canlı çalıştırılması gibi konular da ele alınmaktadır. Eğitmen, Visual Studio Code ve Live Server eklentisi kullanarak uygulamanın nasıl çalıştırılacağını göstermektedir.
    00:04Sunum ve Eğitim Planı
    • Batuhan İşıldak kendini tanıtıyor ve Movation adlı şirkette full stack web uygulama geliştiricisi olarak çalıştığını belirtiyor.
    • Node.js ile bir chat uygulaması yapacaklarını ve katılımcıların soruları için chat veya mikrofon üzerinden iletişim kurabileceklerini söylüyor.
    • Eğitim planında Node.js'in tanıtımı, Socket.IO kütüphanesi, Express kütüphanesi, TCP ve UDP protokolleri ile kodlama olacak.
    01:13Node.js'in Tarihçesi ve Özellikleri
    • Node.js, JavaScript'in web tarayıcılarından bağımsız olarak bilgisayarda çalıştırılabilmesi amacıyla geliştirilmiş bir platformdur.
    • Chrome'un güçlü JavaScript motoru (V8) kullanılarak Node.js oluşturulmuştur.
    • Node.js ile web sunucusu işlemleri, API yazımı, dosya erişimi ve internet işlemleri yapılabilir.
    02:59Web Sunucuları ve İletişim Mantığı
    • Web sunucularında client (kullanıcı) sunucuya istek atar, sunucu işlemi işler ve istenilen veriyi döndürür.
    • Instagram'da mesaj gönderme işlemi de benzer bir mantıkla çalışır.
    • Socket.IO modülü, client isteklerini alıp diğer clientlere yayınlar (broadcast).
    04:29Socket.IO ve TCP Protokolü
    • Socket.IO, TCP protokolü sayesinde iki taraf arasındaki bağlantıyı sağlar.
    • Normal web sunucularında (örneğin Express) istek-cevap modeli tek yönlüdür, ancak Socket.IO'da hem client hem de sunucu istek atabilir.
    • Socket.IO'da tekli bağlantı yoktur, sürekli iki yönlü iletişim sağlanır.
    05:45Kod Örneği ve Express Kullanımı
    • Express kullanılarak HTTP sunucusu oluşturulur ve Socket.IO ile entegre edilir.
    • Socket.IO'da "on connection" olayı gerçekleştiğinde bir fonksiyon çalışır ve kullanıcı sunucuya bağlanabilir.
    • Kullanıcı sunucuya bağlandıktan sonra "join" olayı ile bir odaya katılabilir ve "emit" fonksiyonu ile mesajları diğer kullanıcılarla paylaşabilir.
    08:15HTTP İşlemleri ve Express
    • Express, internetle yapılan işlemlerimizi yapmamızı sağlayan bir kütüphanedir.
    • GET işlemi, bir sayfanın içeriğini çekmek için kullanılır ve DNS server'a giderek IP adresi alınıp sayfa görüntülenir.
    • POST işlemi, veriyi sunucuya göndermek için kullanılır ve GET gibi URL'de görünmesi istenmeyen veriler için daha güvenlidir.
    10:05HTTP Durum Kodları
    • HTTP durum kodları, sunucunun isteğe verilen cevabı gösterir (200: OK, 403: Erişim Engellendi, 404: Bulunamadı).
    • Bu kodları Express ile kendimiz de belirleyebiliriz.
    11:37TCP ve UDP Protokolleri
    • TCP, paketleri kontrol ederek gönderir ve alındığını teyit eder, bu nedenle daha güvenli ancak yavaş çalışır.
    • UDP, paket kontrolü yapmadan veriyi gönderir, bu nedenle daha hızlı çalışır ancak güvenliği daha düşük.
    • UDP genellikle ses ve video gibi büyük veri akımları için kullanılır.
    14:46Kullanılacak Araçlar
    • Insomnia, API test etmek için kullanılan bir uygulamadır.
    • Visual Studio Code, kodlama için kullanılacak bir editördür.
    • WebSocket Client, Chrome eklentisi olarak kullanılacaktır.
    16:40Node.js Projesi Oluşturma
    • Node.js projesi oluşturmak için önce "npm init" komutu ile package.json dosyası oluşturulur.
    • package.json dosyası, proje için gerekli paketleri depolar ve npm ile paketleri yüklememizi sağlar.
    • Express ve Socket.IO gibi kütüphaneler "npm install" komutu ile yüklenir.
    19:08Express Kullanımı
    • Express kütüphanesi çağrılıp "app" değişkenine atanır.
    • HTTP modülü de çağrılır ve http serverı başlatılır.
    • Socket.IO ile gerçek zamanlı iletişim sağlanır.
    19:54Socket.IO Sunucusu Kurulumu
    • Socket.IO kullanarak bir sunucu kurulumu yapılıyor.
    • HTTP modülü kullanılarak sunucu başlatılıyor.
    • Socket.IO'nun connection olayında soket parametresi ile fonksiyon çalıştırılıyor.
    21:06Kullanıcı Verilerini Takip Etme
    • Connection olduğunda kullanıcıdan data alınarak kullanıcı ismi, soket ID'si ve room bilgisi tutuluyor.
    • Kullanıcı verileri bir users dizisine soket ID'si üzerinden kaydediliyor.
    • Room değişkeni kullanılarak farklı odalarda farklı kullanıcıların etkileşimi sağlanıyor.
    24:04Broadcast ve Mesajlaşma
    • Soket broadcast emit kullanılarak gelen kullanıcıya işine yaramayan datayı vermek istemiyoruz.
    • Send chat message olayında alınan data ile mesajlar room'a göre yayılıyor.
    • Broadcast kullanarak mesajlar aynı room'daki diğer kullanıcılarla paylaşılıyor.
    26:04Bağlantı Kesilme İşlemi
    • Disconnect olayında kullanıcı verileri users dizisinden çıkarılıyor.
    • Disconnect olduğunda kullanıcı ismi ve room bilgisi ile mesaj yayılıyor.
    • HTTP sunucusu belirli bir porttan dinlemeye başlıyor (örneğin 8000 portu).
    29:21CORS ve Test
    • CORS eklenmesinin nedeni açıklanıyor, ancak önce hatayı görmek için CORS eklenmiyor.
    • Sunucunun çalışıp çalışmadığını test etmek için bir yöntem aranıyor.
    • HTML ve JavaScript kodları önceden hazırlanmış durumda, bugün önceden eklenen kodlarla çalışmaya başlanacak.
    32:54Chat Uygulaması Sorunları
    • HTTP ve HDP bağlantılarında sorunlar yaşanıyor, busd hata alınıyor.
    • Live server'da çalışan sunucunun nasıl çalıştığını göstermek istiyor.
    • Kullanıcı ismi sorgulamasından önce bir şey yazıldığında sorun yaşanıyor.
    33:40Chat Uygulaması Kullanımı
    • Kullanıcı ismi girildikten sonra chat'e giriş yapılabiliyor.
    • Chat'te farklı kullanıcılar (Nur, İsmail, Ali, Nuri) görülebiliyor.
    • İki ayrı room (room 1 ve room 2) bulunuyor.
    35:10Kod Mantığı
    • Soket ve io kullanılarak kullanıcı ismi ve room bilgileri alınıyor.
    • Soket sayesinde mesajlar dinleniyor ve room 1'e gelen mesajları görmek için gerekli mantık uygulanıyor.
    • Kullanıcı bağlanma ve bağlantıyı kesme olayları için gerekli kodlar bulunuyor.
    38:04Kod Detayları
    • Kodda require kullanılmıyor çünkü bu bir Node.js scripti değil, sadece index.html içinde çalışan düz JavaScript.
    • Soket.io, npm ile yüklendiği için dışarıya veriliyor ve kullanılabiliyor.
    • AppendMessage fonksiyonu mesajları göstermek için div elementi oluşturuyor ve message container'ın içerisine basıyor.
    40:55Room 2 İçin Kod
    • Room 2 için de benzer kodlar yazılabilecek, sadece room 2 olarak değiştirilmesi gerekiyor.
    • Room 2'de mesaj gönderildiğinde ve alınırken room 2 odasına yönlendiriliyor.
    • Live Server eklentisi kullanılarak uygulama canlı bir şekilde çalıştırılabiliyor.
    42:06CORS Hatası ve Çözümü
    • CORS (Cross-Origin Resource Sharing) hatası, farklı portlardan gelen isteklere karşı bir güvenlik korumasıdır.
    • CORS hatasını çözmek için server'da gerekli ayarlar yapılmıştır.
    • Aynı domain'de ancak farklı portlardan çalışan client ve server arasında CORS hatası oluşur.
    45:12Chat Uygulaması Sorunları ve Çözümleri
    • Chat uygulamasında mesaj gönderme sırasında "name of undefined" hatası oluşmuştur.
    • Sorunun çözümü için mesaj gönderiminde name bilgisinin düzgün şekilde yollanması gerekiyordu.
    • Sorun düzeltilince kullanıcıların bağlanıp mesaj gönderme işlemi başarıyla gerçekleşmiştir.
    49:32Soket İşlemleri ve Çalışma Mantığı
    • Soket uygulamasında server ve client arasında çift taraflı bir bağlantı kurulmaktadır.
    • Server'da çeşitli kanallar (send chat message, user disconnect, user connect) oluşturulmuştur.
    • Soket broadcast emit sayesinde bir kullanıcıdan gelen mesaj diğer tüm bağlı kullanıcılarla paylaşılır.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor