WebSocket handshake: Unexpected response code: 404 – Como Resolver
Visão Geral do Erro
O erro “WebSocket handshake: Unexpected response code: 404” ocorre quando uma tentativa de conexão via WebSocket falha devido a um código de resposta 404 (não encontrado). Esse problema pode surgir em várias aplicações, incluindo Jupyter Notebooks, servidores Shiny, Django e outros sistemas que utilizam WebSockets. Ele indica que o servidor não conseguiu encontrar o endpoint solicitado para estabelecer a conexão.
Causas Comuns
Existem várias razões pelas quais esse erro pode ocorrer:
- Configuração incorreta do servidor: O servidor pode não estar configurado para aceitar conexões WebSocket na URL especificada.
- Problemas com bibliotecas de dependência: Versões incompatíveis de bibliotecas como Tornado podem causar falhas de conexão.
- Proxy ou firewall: Se houver um proxy ou firewall configurado, ele pode estar bloqueando ou redirecionando as solicitações de WebSocket.
- URLs incorretas: A URL do WebSocket pode estar incorreta ou não configurada corretamente no cliente.
- Protocolos HTTP: O WebSocket requer HTTP/1.1 para funcionar corretamente, e a falta de configuração pode resultar em falhas.
Métodos de Solução
Abaixo estão alguns métodos para resolver o erro “WebSocket handshake: Unexpected response code: 404”.
Método 1: Reinstalação do Tornado
Se você estiver usando o Tornado no seu projeto, pode ser que a versão instalada não seja compatível. Para resolver isso, siga os passos abaixo:
- Abra um terminal ou prompt de comando.
- Execute o seguinte comando para desinstalar a versão atual do Tornado:
bash
sudo pip3 uninstall tornado - Instale a versão específica que é conhecida por funcionar corretamente:
bash
sudo pip3 install tornado==5.1.1
Esse procedimento resolveu o problema para muitos usuários que enfrentaram o mesmo erro.
Método 2: Configuração do Nginx
Se você está utilizando o Nginx como um proxy reverso, é necessário adicionar algumas diretrizes específicas para permitir WebSockets. Siga os passos:
- Abra o arquivo de configuração do Nginx, normalmente localizado em
/etc/nginx/nginx.confou em/etc/nginx/sites-available/default. - Adicione as seguintes linhas dentro do bloco
serverque está configurando seu aplicativo:
“`nginx
location /websocket/

コメント