Soketler, süreçler arası iletişim için kullanılır. Interprocess iletişimi istemci-sunucu modeline dayanır. Bu durumda, istemci-sunucu birbiriyle etkileşime giren uygulamalardır. İstemci ve sunucu arasındaki etkileşim bir bağlantı gereklidir. Soket programlaması, etkileşime girecek uygulamalar arasındaki bağlantıyı kurmaktan sorumludur. Kısacası ağ iletişimini temin eden bir uyarlamadır.
Çevrim içi kullanıcıların buluştuğu bir platform oluşturdunuz ve kullanıcılar arası anlık mesajlaşma özelliği getireceğinizi varsayalım, bir kullanıcından diğer bir kullanıcıya mesaj gönderildiğinde sunucu tarafında bir değişiklik olur ve sunucu bunu istemciye bildiremez. Bu değişikliği algılayabilmek için polling, long polling ya da websocket gibi yapılar kullanılır. Polling belli aralıklarla sunucuya istek yapar, sunucu her isteğe bir cevap oluşturup gönderir ve bu çok fazla trafik yaratarak, bu da anlık konseptinin dışına çıkar. Long polling ise sunucuya isteği atar fakat sunucu tarafından cevap dönmesi için yeni bir istek yapılmasını bekler. Websocketler ise HTTP protokolüne uygun olmayan eş zamanlı web uygulamarındaki karmaşık yapının basitleştirilmesini sağlar.Websocket’ler polling’e göre daha az band genişliğine ihtiyaç duyar. Websocket ile kalıcı bir bağlantıyla oluşturduğumuz port üzerinden kullanıcılar arası iletişim portunu dinleyebilir ve anlık olarak kullanıcılar arası iletişimi ucuz ve hızlı yoldan halletmiş olursunuz.
Soket işleyişine örnek tema
Web socketlerden bir örnek vermek gerekirse sanırım socket.io güzel bir örnek olur. Socket.io web socket ile ilgili protokollerin tamamını ( xhr , long polling , websocket ) standartlaştıran ve sabit bir kullanım sunan web socket emulatörüdür. Her platform, tarayıcı ve cihaz üzerinde çalışır. Güvenilirlik ve hıza eşit derecede odaklanır.