websocket demek node.js demek değil ilk olarak. websocket, client (kullanıcı diyelim), server arasında port üzerinden iletişim kurmak olarak kısaca açıklayabiliriz. yani direkt olarak bir iletişim söz konusu.
node.js ise bir javascript kütüphanesi. yalnız kütüphane diyince basit bir şeymiş gibi algılanıyor, öyle değil

node.js aslında tek başına bir web yazılım dili. html gibi, php gibi. bir çoğumuz (ben de öyle sanmıştım) node.js'yi jquery gibi bir şey sanıyoruz. aslında öyle değil, tamamen anlık iletişim ve güncelleme gerektiren web sitelerini yapabileceğiniz bir dil.
websocket için node.js'ye alternatifler var mı? var. php ile websocket yazabilir misin mesela? evet yazarsın. fakat bu işi en stabil olarak şu an node.js ve onunla birlikte kullanılan socket.io yapabiliyor.
websocket ne zaman lazım bize? her yerde websocket kullanabilir miyiz?
websocket bize, realtime (eşzamanlı/gerçek zamanlı) veri transferi yapmamız gereken durumlarda lazım. örnek olarak canlı maç sonuçları yayınlıyorsanız şu an çok fazla alternatifiniz yoktur fakat node.js ya da diğer websocket yazılımlarını veya kendi socket yazılımınızı kullanırsanız her şekilde server'ı rahatlatır daha verimli ve gerçek zamanlı veri gösterimi/taşıması yapabilirsiniz. sadece canlı maç gibi şeyler mi? tabii ki hayır. misal chat, canlı yayın (streaming - gerçi maliyeti yüksek olur), canlı destek, rpg oyunlar ya da en çok kullanılan alanlardan bir tanesi olan webservis v.b. şeylerde websocket işinizi en doğru şekilde görür.
gelelim en sıkıntılı yanına;
websocket işlemleriniz için sunucu/server sahibi olmalısınız. node.js kullanacaksanız türkiye'de her hosting firmasında node.js yüklü host bulamazsınız, kendi serverınız varsa kurulumu kolaydır. node.js şu an tek kişinin elinden çıktığı için geliştirilmesi, yeni versiyonlarının çıkması ya da rafa kaldırılması tek kişiye bağlı. bu da problem bana göre. yarın bir gün vatandaş ben bunu geliştirmeyi bıraktım diyebilir.
avantajları neler?
anlık veri işlemlerinde en hızlı ve gerçek işlemleri yapmanızı sağlar. birbiriyle iletişime geçmesi gereken clientleri en maliyetsiz ve verimli şekilde iletişime geçirtir.
kısacası bu kadar.