WebSocket & Socket.IO
WebSocket
WebSocket, istemci ve sunucu arasında TCP( Transmission Control Protocol) bağlantısı üzerinden çift yönlü iletişimi sağlayan iletişim protokolüdür. WebSocket her zaman açık kalır, böylece gerçek zamanlı veri aktarımına izin verir. WebSocket gibi teknolojiler sayesinde, web sunucusu ve web tarayıcısı arasında, her ikisi de herhangi bir zamanda birbirlerine mesaj gönderebilir.
WebSocket, özellikle sürekli veri alışverişi gerektiren servisler için mükemmeldir; borsa, açık artırma, oyun, e-ticaret gibi yerlerde kullanılır.

WebSocket’ın Özellikleri:
- İstemci ile web sunucusu arasında gerçek zamanlı iletişime yardımcı olur.
- Sunucu ve istemci arasında gerçek zamanlı cross-platform dönüştürmeye yardımcı olur.
- İstemci ve sunucu arasında kurulan bağlantının devam etmesine yardımcı olarak çift yönlü iletişimi sağlar.
- İhmal edilebilir gecikme süresi ile tam ve verimli veri akışını sağlar.
- Ek yükü kaldırır ve karmaşıklığı azaltır.

Socket.IO
İstemci ve web sunucuları arasında gerçek zamanlı ve iki yönlü iletişim sağlayan kütüphanedir. Arabirimi sağlamak için WebSocket protokolünü kullanır. Veriler çeşitli şekilde gönderilebilse de, JSON(JavaScript Object Notation) en basitidir.

Socket.IO Özellikleri:
- Bir seferde birden fazla sokete yayın yapılmasına yardımcı olur ve bağlantı şeffaf bir şekilde gerçekleştirir.
- Eşitlik, güvenilirlik ve hız sağlayan tüm platform, sunucu veya cihazlarda çalışır.
- Gerektiğinde otomatik olarak güncellenir.
- Diğer protokollerin üzerinde özel bir gerçek zamanlı taşıma protokolü uygulamasıdır.

Socket.IO'nun sağladığı iki yönlü iletişimi göstermenin popüler bir yolu temel bir sohbet uygulamasıdır . Soketlerle, sunucu yeni bir mesaj aldığında istemciye gönderir ve istemci ile sunucu arasında istek gönderme gereksinimini atlayarak onları bilgilendirir. Basit bir sohbet uygulaması bunun nasıl çalıştığını gösterir.
WebSocket & Socket.IO Arasındaki Farklar:
- WebSocket, TCP bağlantısı üzerinden kurulan bir iletişim protokolüdür.
- Socket.IO, WebSocket ile çalışmak için kütüphanedir.
- WebSocket, TCP bağlantılarında çift yönlü iletişim sağlar.
- Socket.IO, browser ve server arasındaki event-based dayalı iletişimi sağlar.
- WebSocket’ta proxy ve yük dengeleyici desteklenmez.
- Socket.IO, proxy ve load balancers varlığında bağlantı kurabilir.
- WebSocket, broadcast’i desteklemez, Socket.IO ise broadcast’i destekler.
- WebSocket, geri dönüş seçeneği yoktur. Socket.IO geri dönüş seçeneklerini destekler.
