Bilmek istediğin her şeye ulaş

Websocket nedir?

Klasik HTTP mantığında, web tarayıcısı (client) her zaman sunucudan (web-server) veri isteğini yapan tarafır. Tarayıcı bir HttpRequest yapar, karşılığında da sunucudan bir HttpResponse alır ve en sonunda da bağlantı kapatılır. Tekrar, yeni bir veri alış verişi için, yeni bir bağlantı ve yeni bir istek oluşturulması gerekir. HTML5 ile gelen ve JavaScript üzerinde kullanabildiğiniz "WebSocket" nesneleri ile artık bu kısıtlamanın önüne geçiliyor. Örneklerle açıklayalım:

Web tarayıcısı üzerinde çalışan, Javascript tabanlı, gerçek zamanlı bir multi-player oyun yazmak istediğinizi varsayalım. Bir oyuncunun, oyundaki güncel durumu sorgulayabilmesi için, web tarayıcısının arka planda sunucudan belli tekrarlarla (saniyede bir, beş saniyede bir gibi... ) AJAX istekleri yaparak veri çekmesi gerekir. Bu, hem gereksiz veri transferi demek, hem de sunucu ve istemciye gereksiz iş yükü demek... Ama eğer yeni "WebSocket" teknolojini kulanırsanız, istemcinin sürekli bağlantı yaparak veri sorgulamasının önüne geçebilirsiniz. WebSocket'te sunucu ile web tarayıcı arasında kalıcı bir bağlantı açılır. Oyunda herhangi bir veri güncellendiği zaman, web tarayıcının istek yapmasına gerek kalmadan, sunucu kendisi istemciye veri gönderebilir.

Başka bir örnek olarak; kurumsal bir web uygulamasında, bir personelin bilgilerini görüntülediğinizi düşünün. Ekranı bir kaç dakika boyunca incelediniz. Ancak ekran açık kaldığı süre içinde, eğer personel bilgilerinde bir değişiklik olduysa, bu değişiklikleri göremediniz. Klasik yöntemde, değişikliği anında kullanıcıya gösterebilmek için, arka planda yine tekrarlayan AJAX istekleri yapmanız gerekecekti. Ancak "WebSocket" kullanırsanız, sadece personelin bilgisi sunucuda güncellediği zaman, sizin tarayıcınıza "bu personelin bilgileri güncellendi, yeni bilgiler şöyle" şeklinde, bir defaya mahsus mesaj gelmesi yeterli olacaktır.
  • Paylaş
HTML5 ile gelen en güzel özelliklerden biri de AJAX kullanmadan sunucu ile iletişime geçmemizi sağlayan WebSockets teknolojisi.
  • Paylaş
Soket dediğimiz şey(nesne), elimizdeki aletimizi dünya ile iletişime sokmak için ya da local iletişim için gereken İLK nesnedir. Bu nesne bir port numarası ve ip adresi ile oluşturulur. Buna "Bind" etmek denilir( harmanlama, ilişkilendirme ) . Ve artık aletimize bu nesne üzerinden iletişim olanağı sağlamış oluruz
-WebSocket dediğimiz soketler ise web sitelerinin iletişim nesnesidir. Algoritmik olarak normal soketten farklıdır. Normal sokette biz soket ile makinemizi iletişime açarız. Websocket soket türünde ise iletişimde olan bir sokete ulaşmaya çalışırız.

-0'dan multi-chat programı(C ile) yazmış biri olarak kendi yorumumdur. Teknik açıklamasında farklı bilgi olabilir.
  • Paylaş
Temel anlamda konuyu özetleyen ve websocketin anlamını güzel bir şekilde anlayabileceğiniz aşağıdaki makaleyi okumanızı tavsiye ederim.

webmagazin.co/nedir-bu-asenkron
  • Paylaş
Özetle anlatmaya çalışayım. Detaylı olmasa da bir şeyler aklınızda canlanır inşallah.
  • Önümüzde açılmış bir Mozilla Firefox uygulaması olduğunu düşünelim.
  • Ulaşmak istediğimiz bir web sitesi olduğunu düşünelim. Dolayısıyla bu web sitesinin üzerinde çalışacağı bir server olması gerekiyor. Bu server da uzak bir veri merkezinde olsun.
Şimdi şunu yapmaya çalışacağız, Firefox üzerinden sitenin üzerinde çalıştığı server'a gideceğiz ve bu serverdan web sayfasını alacağız. Bu web sayfasını server'dan talep etmek için, ve server'ın web sayfasını bize gönderebilmesi için network üzerinden haberleşmemiz gerekecek. Network dediğimiz şeyi basitçe internet kablosu olarak düşünebiliriz. Biz web sayfasını talep ettiğimiz zaman, bu talep bilgisayardan network kablosuna geçer ve internet üzerinden ağı takip ederek serverın olduğu yere ulaşır. Server'ın kablosundan server'a ulaştığı zaman server gelen talebe bakarak istenilen web sayfasını yine aynı mantıkla bizim Firefox uygulamasına gönderir. Yani kablodan sayfayı gönderir, bu sayfa ağdan geçerek, Firefox uygulamasına gelir.

Yani olay 3 kısımdan oluşuyor. Firefox çalışan benim bilgisayarım, talep ve cevapların üzerinde aktığı network ve web sayfasının üzerinde çalıştığı server.
Şimdi bizim Socket burada neresi?
Socket dediğimiz şey server ve Firefox bağlantılarının network'e geçtiği yerdir. Firefox ve Web Server'ı bir ev olarak düşünelim, network'ü de bu evler arasındaki yol olarak kabul edersek:Socket dediğimiz şey de bu evlerin kapısı oluyor. Yani taleplerin Firefox'tan network'e geçtiği yer.

Umarım anlatabilmişimdir.
Kolay gelsin.
  • Paylaş
1

İbrahim Aydın, Web siteleri için Client-Server ileitişim mantığını anlatmışsınız. Gayet de güzel anlatmışsınız tebrikler =)
Ancak soruda bahsi geçen "WebSocket" kavramı; HTML5 ile gelen yeni bir özellik. İstemcinin istek yapmasına gerek kalmadan, sunucunun tarayıcıya veri göndermesi ile alakalı..

Sonraki Soru
HESAP OLUŞTUR

İstatistikler

995 Görüntülenme8 Takipçi5 Yanıt