Chrome, belirli miktarda veri aktarıldıktan sonra takılıyor - kullanılabilir soket bekleniyor


101

Bir tarayıcı oyunum var ve son zamanlarda oyuna ses eklemeye başladım.

Chrome tüm sayfayı yüklemez, takılıp kalır "91 requests | 8.1 MB transferred"ve daha fazla içerik yüklemez; ve hatta diğer tüm sekmelerdeki web sitesini kırıyor diyerek Waiting for available socket.

5 dakika sonra (tam olarak) veriler yüklenir.

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin

Bu başka hiçbir tarayıcıda olmaz.

Bir MP3 dosyasını (en son eklenen) kaldırmak sorunu çözdü, bu nedenle bu bir veri limiti sorunu olabilir mi?


1
Bunun için bir hata raporu dosyaladınız mı veya buldunuz mu? Tamamen aynı davranışı görüyoruz (istek veya aktarılan bayt sayısının eşleşip eşleşmediğini kontrol etmemiz gerekiyor, ancak aksi takdirde davranış ve hatanın tam olarak eşleşip eşleşmediğini kontrol etmemiz gerekiyor)
19

1
Bu bilinen bir soruna benziyor - bkz. Code.google.com/p/chromium/issues/detail?id=324653 Code.google.com/p/chromium/issues/detail?id=324653 Tam olarak neler olup bittiğine bir göz atın . Ancak, açık yuva sınırına ulaşıyorsanız, aslında diğer tarayıcıların bile tek bir etki alanına bağlantı sayısı sınırı vardır. İki seçeneğiniz var - ya sadece birkaç eşzamanlı isteğinizin aktif olduğundan emin olun (bunları serileştirin; paralelleştirmeyin); veya sunucunuzu alt etki alanlarına ayırın ve farklı alt etki alanlarına istek gönderin.
Jan

5
Özel durum, ancak Chrome'u yakın zamanda yeniden başlattıysanız ve temel HTTP kimlik doğrulaması gerektiren bir sunucuya açık birden çok sekmeniz varsa, arka plan sekmelerinizden biri bir kimlik doğrulama iletişim kutusu açtığı için bu hataları alabilirsiniz. Söz konusu site için diğer tüm açık sekmeleri kontrol edin, gerektiği gibi giriş yapın ve sorunun çözülüp çözülmediğine bakın.
Nathaniel Heinrichs

Ekran görüntüsünde sağladığı bu verileri izlemek için bunun hangi uzantı olduğunu bilen var mı?
AlexioVay

2
@NathanielHeinrichs +1 son 2 haftadır beni rahatsız eden "niş durum" için. Bana olan şey tam olarak bu ve şimdi nedenini biliyorum! Teşekkürler.
Marcus

Yanıtlar:


68

Sunucu başına bağlantı sınırına ulaştığınız görülüyor. Görüyorum ki çok fazla statik dosya yüklüyorsunuz ve benim tavsiyem onları alt alan adlarında ayırmak ve bunları örneğin doğrudan Nginx ile sunmaktır.

  • İmg.yoursite.com adlı bir alt alan adı oluşturun ve tüm resimlerinizi oradan yükleyin.

  • Scripts.yourdomain.com adlı bir alt alan oluşturun ve tüm JS ve CSS dosyalarınızı oradan yükleyin.

  • Sounds.yoursite.com adında bir alt alan oluşturun ve tüm MP3'lerinizi oradan yükleyin ... vb.

Nginx, statik dosyaları doğrudan sunmak ve statik dosyaları önbelleğe almayı yönetmek için harika seçeneklere sahiptir.


11
Bu hiçbir şeyi değiştirmez. Host dosyanıza bazı sahte alan adları koyun ve localhost yerine bunları kullanın.
Predte4a

Benim için bir seçenek değil. Ev sunucumdan web üzerinden video sunmaya çalışıyorum (işteyken).
Sridhar Sarnobat

4
Httpd'nin (yani apache) yüzlerce sim'i işleyebildiği durumda. bağlantılar ve sadece Crome onları sınırlıyor, bu bir çözüm değil. Benim durumumda, profil başına 6 sokettir, bu yüzden anonim profilde 6 tane daha açabilirim. Bu, en iyi cevap olarak kabul edilebilecek bir stackoverflow.com/a/29639535/904846 çözümüdür .
dmnc

146

Açıklama:

Bu sorun, Chrome'un varsayılan olarak 6 adede kadar açık bağlantıya izin vermesi nedeniyle oluşur. Dolayısıyla, aynı anda 6'dan <video>veya<audio> etiketten , 7. bağlantı (örneğin, bir görüntü) soketlerden biri açılana kadar askıda kalacaktır. Genellikle, açık bir bağlantı 5 dakika hiçbir işlem yapılmadığında kapanır ve bu nedenle .pngs dosyalarınızın sonunda bu noktada yüklendiğini görüyorsunuz.

1.Çözüm:

Açık bir bağlantıyı tutan medya etiketlerinin sayısını en aza indirerek bundan kaçınabilirsiniz. Ve 6'dan fazlasına ihtiyacınız varsa, onları en son yüklediğinizden veya benzer özelliklere sahip olmadıklarından emin olun preload="auto".

2.Çözüm:

Bir web oyunu için birden fazla ses efekti kullanmaya çalışıyorsanız, Web Audio API'sını kullanabilirsiniz . Ya da işleri basitleştirmek için SoundJS gibi bir kitaplık kullanın aynı anda çok sayıda ses efekti / müzik parçası çalmak için harika bir araç olan .

3. Çözüm: Yuvaları Zorla Açın (Önerilmez)

Gerekirse, tarayıcınızdaki soketleri zorla açabilirsiniz (Yalnızca Chrome'da):

  1. Adres çubuğuna gidin ve yazın chrome://net-internals.
  2. Menüden Socketsseçin.
  3. Tıklayın Flush socket poolsdüğmesi.

Ziyaretçilerinizin sitenizi görüntüleyebilmek için bu talimatları izlemesini beklememeniz gerektiğinden bu çözüm önerilmez.


13
Kabul edilen cevap genel olarak iyi bilgi verirken, bu en iyi cevaptır.
taco

1
Neo4J 3.0.4'ü yeni yükledim ve localhost'u açarken : 7474 mevcut soketleri beklediğini söylüyor, yıkamayı denedi hala çalışmıyor ve havuz listesinde bu site için 6 aktif ve 2 beklemede diyor
Adeem

Yıkama soket havuzları benim için de çalışmıyor (birkaç HTML5 <video>öğesinin küçük parçalarını çalıyorum ve sınıra
ulaşıyorum

Benim durumumda, sunucuya açık ve oylama yapan birçok sekme vardı, tüm sekmeleri kapattı ve şimdi iyi.
igaurav

Eski uygulamamız, genel bir sunucudan görüntüler (yakınlaştırma / uzaklaştırma.png vb.) İstiyordu (bu, desteklenmeyi durdurmuş olmalı - bu da birçok hata raporuna yol açıyor). Bu sunucuya gönderilen tüm istekler Chrome'da "Beklemede" olarak kaldı ve yalnızca yaklaşık iki dakika sonra 502 HTTP durum kodunu geri gönderecekti. Bu, uygulamayı askıda bıraktı ve bu görüntüleri isteyerek tıkandığı için kendi sunucumuzdan görüntü talep edemedi. Harika cevap - bunu bulmama yardımcı oldu!
Francis Dean

13

Mesaj:

Kullanılabilir soket bekleniyor ...

ssl_socket_pool üzerinde Ana Bilgisayar, Proxy veya Grup başına bir sınıra ulaştığınız için gösterilir.

İşte bir Chrome tarayıcıyla yapabileceğiniz maksimum HTTP bağlantısı sayısı:

  • Proxy başına maksimum bağlantı sayısı 32 bağlantıdır. Bu, Politika Listesinden değiştirilebilir .
  • Ana Bilgisayar başına maksimum: 6 bağlantı.

    Bu, büyük olasılıkla web tarayıcısının kaynak koduna gömülüdür, bu nedenle değiştiremezsiniz.

  • Tarayıcı başına havuzda toplanan toplam 256 HTTP bağlantısı.

Kaynak: Chrome cihazları için kurumsal ağ iletişimi

Yukarıdaki limitler kontrol edilebilir veya deşarj edilebilir chrome://net-internals/#sockets(veya gerçek zamanlı olarak chrome://net-internals/#events&q=type:SOCKET%20is:active).


Ses ile ilgili sorununuz 162627 numaralı Chrome hatasıyla ilgili olabilir , HTML5 sesinin yüklenemediği ve sunucu başına maksimum eşzamanlı bağlantıya : proxy. Bu yazı yazılırken hala aktif bir sorundur (2016).

İlgili çok daha eski bir konu HTML5 video istek kalmak bekleyen , o zaman muhtemelen alakalı # 234779 Sayı 2014 sabit Ve bulunabilir hangi SPDY ilgili edildiği spdy sorunu: Sorun 324.653 kullanılabilir yuva bekliyor , ama bu zaten düzeltildi 2014'te, bu yüzden muhtemelen ilgili değil.

Artık yinelenen olarak işaretlenen diğer ilgili sorun 401845 Sayılı: Ses meta verilerinin önceden yüklenememesi bölümünde bulunabilir . Ortam oynatıcı koduyla ilgili sorunla ilgili olan 10'dan sadece 6'sı yüklendi ve etrafta bir sürü duraklatılmış istek bırakıldı.


Bu, arka plandaki soketlerinizi kullanan bazı Chrome reklam yazılımları veya antivirüs uzantılarıyla da ilgili olabilir ( Sophos veya Kaspersky gibi ), bu nedenle DevTools'ta etkinliğini kontrol edin .


1
Sunucu başına 6'yı sunucu başına 8'e nasıl değiştirebilirim, çünkü kullandığım bazı yazılımlar 8'e ihtiyaç duyuyor ve 2 beklemede kalıyor ve site hiç yüklenmiyor
Adeem

@Adeem Bunu değiştirebileceğinizi sanmıyorum, kaynak kodunda kodlanmış olduğuna inanıyorum. Kendi senaryonuzu açıklayarak bu sorunu bildirebilirsiniz .
kenorb

1
chrome: // net-internals / # events & q = type: SOCKET% 20is: aktif bağlantı en son Chrome'da güncel değil
pyrytakala

6

Basit ve doğru çözüm ... Kullanılabilir soket bekleyen senin sorunun çözülmesi olacak ayarından ön yük kapalı ses ve video dosyası koymak ve sayfanızı tekrar kontrol edilir

Eğer JPlayer kullanırsanız o zaman değiştirin "meta": önyükü için "hiçbiri": ön yük JPlayer dan JS dosyası ...

preload: "meta veri" , sayfa yüklemede ses / video dosyanızı oynatan varsayılan değerdir, bu nedenle google chrome "kullanılabilir soket bekleniyor" hatasını gösteriyor


0

İlk düşüncemiz sitenin kapalı ya da benzeri olduğu, ancak gerçek şu ki sorun ya da sakatlık bu değil. Firefox, Opera veya Services Explorer altında test edildiğinde basit bir bağlantının normal şekilde açılması da bir sorun değildir.

Chrome'daki hata, "Bu site kullanılamıyor" yazan bir işaret ve açıklamayla "Hata 15 (net :: ERR_SOCKET_NOT_CONNECTED): Bilinmeyen hata" açıklamasını görüntüler. Hata Google Chrome'da oldukça olağandır, daha doğrusu güncellemelerinde ve çözümü bilgisayarı yeniden başlatmaktır.

Kısmi çözümler fazla olmadığından, arızayı bir dakikadan daha kısa sürede çözmeniz için bir eğitim sunuyoruz. Bu sorunu önlemek ve hizmetlerin normalde Google Chrome'da açık olduğundan emin olmak için şunları adres çubuğuna eklemelisiniz: chrome: // net-internals (sonra "Enter" verin). Daha sonra soldaki menüdeki "Soket" e gidip "Soket Havuzlarını Boşalt" ı seçmeleri gerekir ( http://www.fixotip.com/how-to-fix-error-waiting-for kılavuzluk etmek için aşağıdaki ekran görüntülerine bakın -available-sockets-in-google-chrome / ) Bu, sorunu çözdü ve artık Gmail, Google veya Mountain View devinin herhangi bir hizmetine erişirken sorun yaşamayacak. Umarım yararlı bulmuşsunuzdur ve öğreticiyi ihtiyaç duydukları kişilerle veya sosyal ağlarla paylaşırsınız: Facebook, Twitter veya Google+.


0

Chrome, Chromium tabanlı bir tarayıcıdır ve Chromium tabanlı tarayıcılar, bir seferde yalnızca en fazla 6 açık soket bağlantısına izin verir, 7. bağlantı başladığında boşta kalır ve çalışan 6'dan birinin durmasını bekler ve sonra koşmaya başla. Bu nedenle 'mevcut soketleri bekliyor' hata kodu , 7'nci bu 6 soketten birinin kullanılabilir olmasını bekleyecek ve sonra çalışmaya başlayacaktır.

Sen de yapabilirsin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.