Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Bug] Não consigo criar servidor WebSocket - Php Reativo

Contexto: Estava finalizando o curso de PHP Reativo: programação assíncrona em tempo real, o ultimo modulo/capitulo tem como objetivo criar um servidor WebSocket mas eu não consigo. Se isso pode ajudar:

  • Percebi que as bibliotecas ReactPhp e Ratchet possuem uma versão um pouco diferente do curso.
  • Utilizei o exemplo da documentação do ratchet mas ainda sem sucesso.
  • Utilizo o php por meio do XAMPP ao invés da instalação por meio de variavel de ambiente.
  • Comparei inumeras vezes meu codigo com o codigo disponibilizado ao final do curso e tudo parece igual.
  • Utilizei uma extensão chamada "Web Socket Testing" e ela tambem me retornou erro.

Meus arquivos: index.html (cliente) - alguns comentários são da documentação do ratchet

imagem-cliente

websocket.php (servidor) - alguns comentários são da documentação do ratchet *É o mesmo arquivo.

imagem-websocket-phpPor fim rodo no terminal o comando: php websocket.php me aparece no terminal: "iniciando" o terminal fica travado

vou para o navegador e assim que abro a pagina me deparo com isto:

imagem-navegador

E usando a extensão:

extensao-testar-websocket-navegadorconsole-extensao-testar-websocket-navegador

2 respostas

Extras:

  • Meu PHP é o 8.2
  • Estou utilizando o windows 10 mas tambem tentei com wsl 2

Noutro dia testei em outro computador e simplesmente funcionou sem nenhuma alteração do codigo

solução!

Olá Iarley! Tudo bem?

Às vezes é bem chato de configurar o servidor WebSocket, porque é normal encontrar problemas como esse, mas vamos tentar resolver isso juntos.

Primeiro, vamos verificar alguns pontos importantes:

  1. Porta e Firewall: certifique-se de que a porta 8080 está aberta e não está sendo bloqueada por nenhum firewall ou software de segurança.

  2. Versões das Bibliotecas: como você mencionou que as versões das bibliotecas ReactPhp e Ratchet são diferentes, pode ser que algumas funções tenham mudado. Tente instalar as versões específicas usadas no curso, se possível.

  3. Servidor PHP: como você está usando o XAMPP, certifique-se de que o servidor Apache não está utilizando a porta 8080. Caso esteja, você pode mudar a porta do WebSocket para outra, como 8081, por exemplo.

  4. Não utilizar o XAMPP: por fim, recomendo que faça a instalação mais convencional, que seria baixar os pacotes do PHP e adicionar o caminho para no PATH das variáveis de ambiente. Como a integração direta imagino que possa solucionar esse problema, já que o XAMPP pode estar bloqueando a sua porta.

Espero que alguma dessas sugestões lhe ajude a resolver o problema.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.