Soketler, süreçler arası kontakt 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 mesuldür. Kısacası ağ iletişimini temin eden bir uyarlamadır.
Çevrim içi kullananların buluşmuş olduğu bir platform oluşturdunuz ve kullanıcılar arası anlık mesajlaşma özelliği getireceğinizi varsayalım, bir kullanıcından öteki bir kullanıcıya ileti gönderildiğinde sunucu tarafında bir değişim olur ve sunucu bunu istemciye bildiremez. Bu değişikliği algılayabilmek için polling, long polling ya da websocket şeklinde yapılar kullanılır. Polling belli aralıklarla sunucuya talep yapar, sunucu her isteğe bir yanıt oluşturup gönderir ve bu oldukça fazla trafik yaratarak, bu da anlık konseptinin dışına çıkar. Long polling ise sunucuya isteği atar fakat sunucu tarafınca yanıt dönmesi için yeni bir talep 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 bakılırsa daha azca band genişliğine gerekseme duyar. Websocket ile kalıcı bir bağlantıyla oluşturduğumuz port üstünden kullanıcılar arası kontakt portunu dinleyebilir ve anlık olarak kullanıcılar arası iletişimi ucuz ve süratli yoldan halletmiş olmuş 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 durağan(durgun) bir kullanım sunan web socket emulatörüdür. Her platform, tarayıcı ve aygıt üstünde çalışır. Güvenilirlik ve hıza eşit derecede odaklanır.