Bu HTTPS sayfasından ws://localhost'u veya bir LAN sunucusunu test edebilir miyim?
Tarayıcıya bağlı (Ekim 2026 itibarıyla). Chrome 147 ve sonrası, bilgisayarınıza veya yerel ağınıza yapılan WebSocket bağlantılarını yerel ağ erişimi olarak değerlendirir: ilk seferde bu siteye izin verilip verilmeyeceğini sorar; İzin ver'i seçtikten sonra ws://localhost, ws://127.0.0.1 ve 192.168.1.10 gibi bir LAN IP adresine ws:// bağlantısı kurulur. Chrome'da LAN sunucusu IP adresi olarak yazılmalıdır; basit bir ana makine adı (.local dışında), ağınızdaki bir adrese çözümlense bile engellenir. Firefox localhost'a doğrudan bağlanır ama LAN adreslerine ws:// bağlantısını engeller. Safari, HTTPS sayfalarından localhost'a ve LAN'a ws:// bağlantısını engeller. wss:// karışık içerik kuralından etkilenmez: sertifika güvenilir olduğu sürece herkese açık sunucular bu sayfadan tüm tarayıcılarda çalışır; localhost veya LAN adreslerinde Chrome burada da önce yerel ağ erişimi izni ister.
Bu sayfadan neden ws://example.com adresine bağlanamıyorum?
Bu sayfa HTTPS üzerinden sunulur ve tarayıcılar bir HTTPS sayfasından herkese açık bir sunucuya şifrelenmemiş ws:// bağlantısını engeller (karışık içerik). Chrome ve Firefox bir SecurityError ile hemen reddeder; araç bunu bildirir. Sunucunun wss:// adresini kullanın. Düz http ile sunulan herkese açık siteler bu kurala tabi değildir, ancak güncel Chrome'da localhost'a veya LAN'ınıza hiç ulaşamazlar.
Bağlantı 1006 koduyla başarısız oldu — sorun ne?
1006 yalnızca bağlantının bir kapanış el sıkışması olmadan sona erdiği anlamına gelir. Bir el sıkışma başarısız olduğunda WebSocket standardı, tarayıcının nedeni sayfadan gizlemesini zorunlu kılar — 401, 404, reddedilen port, sertifika hatası ve reddedilen Origin birebir aynı görünür (Firefox sertifika hatalarını 1015 olarak bildirir) — bu yüzden doğrudan tarayıcıdan bağlanan hiçbir web test aracı bunu gösteremez. F12'ye basıp Konsol'u açın: Chrome ve Edge sunucunun döndürdüğü HTTP durumunu yazar. Araç ayrıca bağlantı açılmadan önceki hataları açıldıktan sonraki kopmalardan ayırır ve her biri için olağan nedenleri listeler.
Authorization ya da başka bir özel başlık ekleyebilir miyim?
Hayır. Tarayıcının WebSocket API'si web sayfalarının istek başlığı ayarlamasına izin vermez; tarayıcı sabit bir başlık kümesi gönderir (Origin ve sunucunun kendi sitesine ait çerezler dahil). Sunucunuzun desteklediğine göre yaygın çözümler: URL'de bir token, örneğin wss://host/ws?token=…; alt protokol olarak iletilen bir token (yalnızca token karakterlerine izin verilir; bu nedenle JWT çalışır ama = veya / içeren standart Base64 çalışmaz ve sunucu alt protokolü geri yansıtmalıdır); ya da bir çerez — tarayıcılar çerezleri güvenilir biçimde yalnızca sayfanın kendi sitesine gönderir, bu yüzden bu sayfadan genellikle sunucunuza ulaşmaz. Postman gibi araçlar tarayıcı olmadıkları için başlık ayarlayabilir.
Postman'de çalışıyor da burada neden çalışmıyor?
Postman ve komut satırı istemcileri istedikleri başlığı ayarlayabilir ve genellikle Origin göndermez. Tarayıcı ise Authorization başlığı ekleyemez ve her zaman Origin: https://go-tools.org gönderir. Sunucu başlıkta token istiyor ya da Origin'i denetliyorsa tarayıcının el sıkışmasını reddeder; Origin'e izin verin ya da token'ı başka bir yolla iletin.
Heartbeat WebSocket ping çerçevesi gönderiyor mu?
Hayır. Web sayfaları protokol düzeyindeki ping/pong çerçevelerini ne gönderebilir ne de görebilir; sunucu bir ping gönderdiğinde tarayıcı kendisi pong ile yanıt verir. Buradaki zamanlı gönderim, ayarladığınız aralıkta {"type":"ping"} gibi sıradan bir metin mesajı gönderir. Bu mesajı beklemeyen bir sunucu bağlantıyı kapatabileceği için varsayılan olarak kapalıdır. Boşta kalan bir bağlantıyı proxy üzerinden canlı tutmak için ping'leri sunucu göndersin.
Socket.IO sunucuma neden bağlanamıyorum?
Socket.IO, WebSocket'in üzerinde çalışan bir protokoldür; düz WebSocket değildir. Bir Socket.IO v3/v4 sunucusu /socket.io/?EIO=4&transport=websocket yolunu bekler, 0 ile başlayan bir open paketi gönderir, varsayılan namespace'e katılmak için 40 bekler ve her ping 2'ye pong 3 ile yanıt verilmezse bağlantıyı kapatır. Protokol alanında Socket.IO v3/v4'ü seçin, araç bunların hepsini yapar; ardından olayları 42["event","data"] biçiminde gönderin. Yalnızca HTTP long-polling için yapılandırılmış sunucular WebSocket bağlantısını hiç kabul etmez.
Bağlantım yaklaşık bir dakika sonra kopuyor — neden?
Genellikle bir ters proxy'deki boşta kalma zaman aşımı yüzünden. Nginx, proxy'lenen bir bağlantıda varsayılan olarak 60 saniye boyunca veri geçmezse bağlantıyı kapatır (proxy_read_timeout) ve sayfa 1006 kodunu görür. Zaman aşımını artırın ya da ping çerçevelerini sunucu göndersin. Nginx arkasında ayrıca proxy'nin upgrade isteğini proxy_set_header Upgrade $http_upgrade; ve proxy_set_header Connection "upgrade"; ile ilettiğinden emin olun (Nginx 1.29.7 öncesinde ayrıca proxy_http_version 1.1;).
Kendinden imzalı sertifikası olan bir wss:// sunucusuna nasıl bağlanırım?
Yeni bir sekmede https://the-same-host:port/ adresini açın, sertifika uyarısını kabul edin, sonra geri dönüp bağlanın. Tarayıcı bu ana makine ve port için istisnayı hatırlar. Tarayıcının korumasını zayıflattığı için bunu yalnızca kendi test sunucularınız için yapın.
İkili mesajları nasıl gönderir ve okurum?
Gönderim biçimi olarak HEX veya Base64'ü seçin. HEX; 48 69 00 FF, 0x48,0x69 veya 486900FF kabul eder. Önizleme baytları gösterir; geçersiz karakterler veya tek sayıda basamak gönderilmek yerine konumlarıyla birlikte bildirilir. Alınan ikili mesajlar satır başına 16 bayt olacak şekilde HEX olarak gösterilir; günlük araç çubuğu bunları Base64'e çevirir. Alınan HEX'i metin olarak okumak için Hex'ten Metne aracına yapıştırın. Mesajlarım go-tools sunucularından geçiyor mu?
Hayır. Tarayıcınız girdiğiniz adrese doğrudan bağlanır ve mesajlar sunucularımızdan geçmez. Araç ayrıca siz Bağlan'a basana kadar hiçbir WebSocket bağlantısı açmaz; adresi ve mesajları sayfa URL'sinde veya tarayıcı depolamasında değil, yalnızca bellekte tutar. Sitenin geri kalanı gibi bu sayfa da analiz ve reklam betikleri yükler.
Test edebileceğim bir sunucu var mı?
Yerel yankıyı kullanın: bu sayfanın içinde çalışır, gönderdiğiniz her şeyi geri yansıtır ve hiçbir ağ bağlantısı kurmaz. wss://echo.websocket.org/ gibi herkese açık echo hizmetleri de vardır, ancak bunlar üçüncü taraf hizmetlerdir: erişilebilirlikleri garanti edilmez ve mesajlarınız o üçüncü tarafa gider.