WebSocket nedir ?
Uzun zamandır web-tabanlı uygulamalar kişisel haberleşmeden elektrik ölçüm araçlarına kadar herşeyin temeli olan ağ protokollerinin yerini yavaş yavaş ele geçirdi. Fakat web üzerinden her türlü iletişimi sağlayan, sadece basit dosya ve belge transferi için yapılmış HTTP protokolünün çok büyük bir eksikliği var: karmaşık haberleşmeye ve ‘gerçek-zamanlı’ etkileşime göre tasarlanmamıştı.
HTTP ‘de bir istemci olarak web tarayıcısı, bir sunucu ile bağlantı kurmalı, ondan veri isteği yapmalı, tepki için beklemeli ve ardından bağlantıyı sonlandırmalıdır. Eğer istemci daha çok veriye gereksinim duyarsa yeni bir bağlantı daha açmak durumdadır. Bu durum aynen telefonla konuşurken, söyleyeceğiniz her bir cümle için tekrar tekrar aramak gibidir. Ve eğer sunucuda istemciye verebileceği yeni bir bilgi varsa, bunu istemciye doğrudan gönderemez, yerine istemciden talep gelmesini beklemelidir.
Bu fazlalık tüm bir bant genişliğini çiğneyebilmektedir. Daha kötüsü bu durum istemcinin ikinci bir bilgi ile dolmasını neredeyse engelleyebilir. Bu da anlık hıza ihtiyaç duyulan online finansal işlemlerde büyük kayıplara neden olabilmektedir.
Web geliştiricileri uzun yıllardır HTTP’nin bu kısıtlamasını aşmak ve herhangi bir bağlantı esnasında daha çok veri transferini sağlayabilemek için Comet gibi yöntemler ve sistemler geliştiriyorlardı. Fakat asıl yapmak istedikleri sunucu (server) ile istemci (client) arasındaki bağlantıyı hiç koparmadan her iki tarafında birbirlerine karşılıklı veri alıp-göndermesine olanak sağlamaktı.
İşte tam bu ihtiyaca şifa gibi gelecek olan çözüm standartları neredeyse oturmak üzere olan HTML5’ten geldi. HTML5 ile gelen bu yeni protokol WebSockets’di.WebSockets, internetin karmaşık haberleşme işlemlerini gerçek-zamanlı olarak gerçekleştirebilmesini sağlayan bir sistemdir. WebSockets, istemciye bir bağlantı kurup bu bağlantıyı istediği kadar sürdürebilmesini ve veriyi iki taraflı olarak hem almasını hem de göndermesini sağlıyor.
WebSockets teknolojisinin en önemli avantajı çok hızlı ve ucuz olmasının çok ötesinde sunucu ile istemci arasında herhangi bir ara yazılıma veya uygulamaya gerek duymamasıdır. Böylelikle uygulama geliştiricileri aradaki bağlantıyı güçlendirmek için enerjilerini harcamak zorunda kalmayacak sadece kendi ürünlerini geliştirmeye daha çok emek sarf edebilecekler.
Websocket Desteği Olan Browser Versiyonları
WebSockets sayesinde anlık takip ve gözleme ihtiyacı duyulan borsa ve gözetleme gibi sistemlerin işleri oldukça kolaylaşak. Geliştiriciler her tarayıcı için spesifik eklentiler geliştirmek zorunda kalmayacaktır.