WebSocket Test Aracı (WebSocket Tester)

Bir WebSocket adresine bağlan, mesaj gönder, gelen çerçeveleri zaman damgasıyla oku ve bağlantı düştüğünde kapanış kodunu gör. Bağlantıyı tarayıcın kurar: adres de mesajlar da Coderspace sunucularına uğramaz.

Bağlı değil
0 Giden mesaj
0 Gelen mesaj
0 Taşınan bayt
Bağlı kalma süresi
Son gidiş-dönüş
Kapanış kodu

Mesaj gönder

Ctrl + Enter da gönderir.

Mesaj kaydı

WebSocket nedir?

WebSocket, tarayıcı ile sunucu arasında açık kalan çift yönlü bir bağlantıdır. HTTP’de her veri alışverişi ayrı bir istekle başlar ve yanıt gelince biter; WebSocket’te bağlantı bir kez kurulur, sonra iki taraf da istediği anda mesaj gönderebilir. Sunucunun bir şey iletmesi için istemcinin sormasını beklemesi gerekmez — canlı verinin sürekli sorgulama yapmadan akmasının yolu budur.

Bağlantı sıradan bir HTTP isteğiyle başlar. İstemci Upgrade: websocket başlığını gönderir; sunucu kabul ederse 101 Switching Protocols döner ve aynı TCP bağlantısı o andan itibaren WebSocket protokolüne geçer. Yani WebSocket, HTTP’nin yerine geçen ayrı bir servis değil, onun üzerinden başlayan bir yükseltmedir; bu yüzden 80 ve 443 dışında bir port açmaya da gerek kalmaz.

Adresler ws:// ya da wss:// ile yazılır. wss://, HTTPS’in WebSocket karşılığıdır ve TLS ile şifrelenir; ws:// şifresizdir. Şifreli bir sayfadan şifresiz bir bağlantı açılamadığı için HTTPS üzerinden ws:// yalnızca kendi makinendeki adreslerde çalışır, uzak sunucularda wss:// gerekir.

Tipik kullanım yerleri:

  • Sohbet ve anlık mesajlaşma, yazıyor göstergeleri
  • Canlı fiyat, skor ve gösterge panosu akışları
  • Aynı belge üzerinde eşzamanlı düzenleme ve imleç paylaşımı
  • Sunucudan gelen bildirimler ve iş durumu güncellemeleri
  • Çok oyunculu oyunlarda durum eşitleme

Her canlı veri işi WebSocket gerektirmez. Veri yalnızca sunucudan istemciye akıyorsa Server-Sent Events daha basittir: sıradan bir HTTP yanıtıdır, kendiliğinden yeniden bağlanır ve vekil sunucularla daha az sorun çıkarır. WebSocket’in kazandığı yer, istemcinin de sürekli ve düşük gecikmeyle konuşması gereken durumlardır.

WebSocket testi nasıl yapılır?

  1. Adresi yaz

    Test edeceğin uç noktayı wss:// ile, kendi makinendeki bir sunucuyu ws://localhost:PORT biçiminde gir. Sunucu bir alt protokol bekliyorsa yandaki kutuya yaz; birden fazlasını virgülle ayırabilirsin.

  2. Bağlan ve uyarıyı oku

    Bağlan’a bastığında bağlantıyı senin tarayıcın kurar. Adres HTTPS bir sayfadan erişilemeyecek bir ws:// adresiyse araç bunu bağlanmayı denemeden söyler, böylece tarayıcının engellediği bir isteği sunucu hatası sanmazsın.

  3. Mesaj gönder, gelenleri oku

    Metni ya da JSON’u yaz ve gönder; istersen önce JSON olarak biçimlendir. Giden ve gelen her çerçeve zaman damgası, boyut ve tür bilgisiyle listelenir; ikili çerçeveler onaltılık özet olarak görünür.

  4. Kapanış kodunu ve gecikmeyi incele

    Bağlantı düştüğünde kapanış kodu ve anlamı yazılır: 1000 normal kapanış, 1006 ağ kaynaklı anormal kopma, 1011 sunucu hatası. Yankı sunucularında gidiş-dönüş süresini de ölçebilir, kaydın tamamını JSON olarak indirebilirsin.

HTTPS sayfada ws:// neden engelleniyor?

Bu sayfa HTTPS üzerinden geliyor. Tarayıcılar şifreli bir sayfadan şifresiz bir bağlantı açılmasına izin vermez; buna karışık içerik (mixed content) denir. Kural WebSocket için de geçerlidir: HTTPS bir sayfadan uzak bir sunucuya ws:// ile bağlanmaya kalkarsan istek daha ağa çıkmadan tarayıcı tarafından iptal edilir. Sunucunda hiçbir sorun olmasa bile.

Tek istisna geri döngü adresleridir. localhost ve 127.0.0.1 tarayıcılar tarafından güvenilir kabul edilir, çünkü trafik makinenin dışına hiç çıkmaz. Bu yüzden kendi makinende çalışan bir sunucuya ws://localhost:8080 ile bağlanmak sorunsuz çalışır. Firefox da bu davranışı Chrome ile aynı hizaya getirmiştir.

Yani uzak bir sunucuyu bu sayfadan denemek istiyorsan sunucunun TLS ile yayın yapması ve adresin wss:// olması gerekir. Araç, adresi yazdığın anda bu durumu fark eder ve bağlanmayı denemeden önce uyarır; böylece kendi kodunda olmayan bir hatayı aramazsın.

Adres Bu sayfadan sonuç
wss://example.com/socket Çalışır. Şifreli bağlantı, karışık içerik sorunu yok.
ws://localhost:8080 Çalışır. Geri döngü adresleri güvenli kabul edilir.
ws://127.0.0.1:8080 Çalışır. Aynı istisna IPv4 geri döngü adresi için de geçerlidir.
ws://example.com/socket Tarayıcı engeller. Araç bunu bağlanmayı denemeden önce söyler ve wss:// karşılığını önerir.

Kapanış kodları: bağlantı neden düştü?

Bir WebSocket kapandığında tarayıcı sana bir sayı verir. Bu sayı çoğu zaman sorunun cevabının tamamıdır: 1000 gördüysen aramanı bitirebilirsin, 1006 gördüysen sorun uygulama mantığında değil ağda ya da araya giren bir vekildedir. Araç kapanan her bağlantı için kodu ve anlamını yazar.

Kod Anlamı Ne yapmalı?
1000 Normal kapanış Sorun yok. Taraflardan biri işini bitirdi ve düzgünce kapattı.
1001 Taraf gidiyor Sekme kapandı ya da sunucu yeniden başlatılıyor. Yeniden bağlanma mantığı burada devreye girmeli.
1006 Anormal kapanış Kapanış çerçevesi hiç gelmedi. Ağ, güvenlik duvarı, ters vekil zaman aşımı ya da çöken bir süreç ara. Uygulama katmanında iz bırakmaz.
1008 İlke ihlali Çoğunlukla kimlik doğrulama. Jetonu, başlıkları ve el sıkışmada gönderilen çerezleri kontrol et.
1009 Mesaj çok büyük Sunucunun çerçeve boyutu sınırını aştın. Mesajı böl ya da sınırı yükselt.
1011 Sunucu hatası Hata sunucu tarafında. Sunucu günlüklerine bak; istemcide değiştireceğin bir şey yok.
4000-4999 Uygulamaya özel Anlamını bağlandığın servis belirler; belgelerinde yazar. Kendi protokolünde bu aralığı kullanabilirsin.

Öne çıkan özellikler

Bağlantıyı tarayıcın kurar

Arada vekil sunucu yok. Adres, alt protokol ve mesajlar Coderspace’e hiç gitmez; yalnızca senin sekmenle karşı sunucu arasında akar.

Karışık içerik uyarısı

HTTPS sayfada uzak bir ws:// adresi yazdığında bağlanmayı denemeden uyarır. Böylece tarayıcının engellediği bir bağlantıyı sunucu hatası sanmazsın.

Kapanış kodu ve anlamı

Bağlantı düştüğünde kodu, sunucunun gerekçe metnini ve kodun ne demek olduğunu birlikte yazar.

Yön, tür ve boyutlu kayıt

Her çerçeve yönü, zaman damgası, bayt boyutu ve türüyle listelenir. İkili çerçeveler bozuk metne dönmez, onaltılık özet olarak görünür.

Gidiş-dönüş süresi

Yankı sunucularında art arda beş ölçüm yapar; en düşük, ortalama ve en yüksek gecikmeyi milisaniye olarak verir.

Artan aralıkla yeniden bağlanma

Bağlantı beklenmedik şekilde koptuğunda aralığı katlayarak yeniden dener. Sunucunun ne zaman geri geldiğini izlemek için yeterli.

Sıkça Sorulan Sorular

Tarayıcılar şifreli bir sayfadan şifresiz bir bağlantı açılmasına izin vermez; buna karışık içerik (mixed content) denir ve kural WebSocket için de geçerlidir. Uzak bir sunucuya ws:// ile bağlanmaya kalkarsan istek daha ağa çıkmadan iptal edilir, sunucunda hiçbir sorun olmasa bile. Tek istisna geri döngü adresleridir: ws://localhost ve ws://127.0.0.1 çalışır, çünkü trafik makinenin dışına çıkmaz. Uzak bir sunucu için adresin wss:// olması gerekir; araç bu durumu bağlanmayı denemeden önce söyler.

1006, kapanış çerçevesinin hiç gelmediği anlamına gelir: bağlantı düzgün kapatılmadı, koptu. Sebep neredeyse her zaman uygulama kodunun dışındadır — ağ kesintisi, güvenlik duvarı, ters vekil (nginx, ALB, Cloudflare) zaman aşımı ya da çöken bir sunucu süreci. Kod sunucudan gelmez, tarayıcı kendi üretir; bu yüzden sunucunun gerekçe metni de olmaz. Boşta kalan bağlantılar için ping/pong ya da uygulama düzeyinde bir canlılık mesajı çoğu 1006 vakasını çözer.

Hayır. Bağlantıyı senin tarayıcın kurar; arada Coderspace tarafında bir vekil ya da aktarıcı yoktur. Yazdığın adres, alt protokol ve gönderdiğin her mesaj yalnızca sekmenle karşı sunucu arasında akar, bize hiç uğramaz ve hiçbir yerde kaydedilmez. Bu yüzden yalnızca senin erişebildiğin bir adrese — örneğin ws://localhost:8080 ya da yerel ağdaki bir sunucuya — bu sayfadan bağlanabilirsin.

Araç, art arda beş kısa metin mesajı gönderir ve her birinin aynen geri gelmesini bekler; ölçtüğü süre gönderimle yanıtın gelişi arasındaki farktır. Dolayısıyla ölçüm yalnızca gönderdiğini geri yollayan yankı (echo) sunucularında anlamlıdır. Kendi protokolün varsa mesajları aynen geri yollamayacağı için sonuç gelmez; bu durumda araç "yanıt gelmedi" der. Ölçüm WebSocket'in kendi ping/pong çerçevelerini kullanmaz, çünkü tarayıcı JavaScript'i bu çerçevelere erişemez.

Sunucun bir alt protokol bekliyorsa onun adını — örneğin graphql-ws, mqtt ya da wamp.2.json. Birden fazla seçeneği virgülle ayırabilirsin; tarayıcı hepsini el sıkışmada sunar ve sunucu birini seçer. Bağlantı kurulduğunda araç sunucunun hangisini seçtiğini yazar. Sunucun alt protokol beklemiyorsa kutuyu boş bırak: gereksiz bir alt protokol göndermek bazı sunucularda el sıkışmanın reddedilmesine yol açar.

İkisi de aynı protokoldür; fark taşıma katmanındadır. ws:// düz TCP üzerinden şifresiz çalışır, wss:// ise TLS üzerinden — yani http ile https arasındaki ilişkinin aynısı. wss:// bağlantısı 443 numaralı porttan geçtiği için vekiller ve güvenlik duvarlarıyla da daha az sorun çıkarır. Yerel geliştirme dışında pratikte tek doğru seçenek wss://'tir; HTTPS bir sayfadan zaten yalnızca o çalışır.

Kolayca hayalindeki işe kavuş!

Şimdi Kayıt Ol
Kolayca Üye Ol
Yazılım Bilgini Göster
Teklifleri Değerlendir