Eu tenho um jogo de navegador e recentemente comecei a adicionar áudio ao jogo.
O Chrome não carrega a página inteira, fica travado "91 requests | 8.1 MB transferred"
e não carrega mais conteúdo; e até quebra o site em todas as outras guias, dizendo Waiting for available socket
.
Após 5 minutos (exatamente), os dados são carregados.
Isso não acontece em nenhum outro navegador.
Remover um arquivo MP3 (o último adicionado) resolveu o problema, então talvez seja um problema de limite de dados?
sockets
google-chrome
http
networking
streaming
Foxhoundn
fonte
fonte
Respostas:
Parece que você está atingindo o limite de conexões por servidor. Vejo que você está carregando muitos arquivos estáticos e meu conselho é separá-los em subdomínios e servi-los diretamente com o Nginx, por exemplo.
Crie um subdomínio chamado img.seusite.com e carregue todas as suas imagens a partir dele.
Crie um subdomínio chamado scripts.yourdomain.com e carregue todos os seus arquivos JS e CSS a partir daí.
Crie um subdomínio chamado sounds.yoursite.com e carregue todos os seus MP3s de lá ... etc.
Nginx tem ótimas opções para servir diretamente arquivos estáticos e gerenciar o cache de arquivos estáticos.
fonte
Explicação:
Esse problema ocorre porque o Chrome permite até 6 conexões abertas por padrão. Portanto, se você estiver transmitindo vários arquivos de mídia simultaneamente de 6
<video>
ou<audio>
tags, a 7ª conexão (por exemplo, uma imagem) irá apenas travar, até que um dos soquetes se abra. Normalmente, uma conexão aberta será fechada após 5 minutos de inatividade, e é por isso que você está vendo seus .pngs finalmente carregando naquele ponto.Solução 1:
Você pode evitar isso minimizando o número de marcas de mídia que mantêm uma conexão aberta. E se precisar de mais de 6, certifique-se de carregá-los por último, ou de que não tenham atributos como
preload="auto"
.Solução 2:
Se você estiver tentando usar vários efeitos sonoros para um jogo da web, poderá usar a API de áudio da web . Ou para simplificar as coisas, basta usar uma biblioteca como SoundJS , que é uma ótima ferramenta para reproduzir uma grande quantidade de efeitos sonoros / faixas de música simultaneamente.
Solução 3: Sockets de abertura forçada (não recomendado)
Se necessário, você pode forçar a abertura dos soquetes em seu navegador (somente no Chrome):
chrome://net-internals
.Sockets
no menu.Flush socket pools
botão.Esta solução não é recomendada porque você não deve esperar que seus visitantes sigam estas instruções para poder visualizar seu site.
fonte
<video>
elementos HTML5 e atingindo o limite.A mensagem:
é mostrado, porque você atingiu um limite em ssl_socket_pool por Host, Proxy ou Grupo.
Aqui está o número máximo de conexões HTTP que você pode fazer com um navegador Chrome:
Máximo por Host: 6 conexões.
Isso provavelmente está codificado no código-fonte do navegador da web, portanto, você não pode alterá-lo.
Total de 256 conexões HTTP agrupadas por navegador.
Fonte: rede corporativa para dispositivos Chrome
Os limites acima podem ser verificados ou liberados em
chrome://net-internals/#sockets
(ou em tempo real emchrome://net-internals/#events&q=type:SOCKET%20is:active
).Seu problema com áudio pode estar relacionado ao bug do Chrome 162627, em que o áudio HTML5 falha ao carregar e atinge o máximo de conexões simultâneas por servidor: proxy. Este é um problema ainda ativo no momento da redação (2016).
Um problema muito mais antigo relacionado à solicitação de vídeo HTML5 permanece pendente , então provavelmente está relacionado ao problema nº 234779, que foi corrigido em 2014. E relacionado ao SPDY, que pode ser encontrado no problema 324653: Problema SPDY: aguardando soquetes disponíveis , mas isso já foi corrigido em 2014, então provavelmente não está relacionado.
Outro problema relacionado agora marcado como duplicado pode ser encontrado no Problema 401845: Falha ao pré-carregar metadados de áudio. Carregado apenas 6 de 10+ que estava relacionado ao problema com o código do media player, deixando um monte de solicitações pausadas penduradas.
Isso também pode estar relacionado a algumas extensões de adware ou antivírus do Chrome usando seus soquetes em segundo plano (como Sophos ou Kaspersky ), portanto, verifique a atividade de rede no DevTools .
fonte
solução simples e correta é desistir de pré-carregar seu arquivo de áudio e vídeo da configuração e verificar novamente sua página seu problema de espera pelo soquete disponível será resolvido ...
se você usar o jplayer, substitua o pré-carregamento: "metadados" para pré - carregar: "nenhum" do jplayer Arquivo JS ...
pré-carregamento: "metadados" é o valor padrão que reproduz seu arquivo de áudio / vídeo no carregamento da página. É por isso que o Google Chrome mostra o erro "aguardando soquete disponível"
fonte
Nosso primeiro pensamento é que o site está fora do ar ou algo parecido, mas a verdade é que esse não é o problema ou a deficiência. Nem é um problema porque uma conexão simples quando testada no Firefox, Opera ou serviços Explorer abre normalmente.
O erro no Chrome exibe um sinal que diz "Este site não está disponível" e esclarecimento com a legenda "Erro 15 (net :: ERR_SOCKET_NOT_CONNECTED): Erro desconhecido". O erro é bastante comum no Google Chrome, mais precisamente em suas atualizações, e sua solução é reiniciar o computador.
Como as soluções parciais não são muito, oferecemos um tutorial para você resolver a falha em menos de um minuto. Para evitar esse problema e garantir que os serviços estejam normalmente abertos no Google Chrome, deve-se inserir o seguinte na barra de endereço: chrome: // net-internals (em seguida, digite "Enter"). Eles então têm que ir para "Socket" no menu à esquerda e escolher "Flush Socket Pools" (veja as seguintes imagens para orientar http://www.fixotip.com/how-to-fix-error-waiting-for -available-sockets-in-google-chrome / ) Isso tem o problema resolvido e não terá mais problemas para acessar o Gmail, Google ou qualquer um dos serviços da gigante de Mountain View. Espero que você tenha achado útil e compartilhe o tutorial com quem eles precisam ou nas redes sociais: Facebook, Twitter ou Google+.
fonte
O Chrome é um navegador baseado em Chromium e navegadores baseados em Chromium só permitem um máximo de 6 conexões de soquete aberto por vez. Quando a 7ª conexão for iniciada, ele ficará inativo e aguardará que um dos 6 em execução pare e então irá comece a correr. Daí o código de erro 'esperando por soquetes disponíveis' , o 7º irá esperar que um desses 6 soquetes fique disponível e então começará a funcionar.
Você também pode
fonte