Socket na digital ocean
[Concluído]
Carlos,
subi um container com socket.io
o laravel-echo-server está escutando o eventos tudo certinho. Porém o front não conecta no socket
http://138.197.108.26:6001/socket.io/?EIO=3&transport=polling&t=Nghd0sS. fica dando net::ERR_CONNECTION_TIMED_OUT
Olá, Jander!
Tudo bem?
Eu tive esse mesmo problema quando fiz o deploy do projeto, e vou te ajudar resolver.
Meu primeiro problema, foi por conta do firewall, como eu habilitei o firewall ele bloqueou essa porta 6001, o que precisei fazer foi abrir essa exceção no firewall. Você configurou o firewall no painel da Digital Ocean? Se sim, pode estar aqui o problema.
Outro problema que tive foi com a Cloudflare, você está usando ela?
Se sim, desabilite a opção de proxy
desabilitei o firewall agora temporariamente até resolver. Não estou usando cloudfire.
acredito que o erro seja no nginx que não está escutando a porta. você tem um arquivo de exemplo do nginx de conf mostrando como escutar a porta 6001 do socket.io ?
Acessei o IP do seu droplet aqui, mas ele não respondeu.
Nem na porta 80, nem na 6001:
http://138.197.108.2:6001
Ainda está de pé? Eu gostaria de acessar para te ajudar a identificar onde está o problema.
Esse aqui é o o endereço do droplet: http://138.197.108.26
na página inicial tem só dois componente de testes, que conectam puxa as informações do socket.io
Conferi aqui amigo, está dando erro de CORS
Está rodando o laravel-echo-server como, com um container Docker?
No seu arquivo laravel-echo-server.json, precisa corrigir essas configurações de CORS (ou remover elas)
está rodando tudo dentro do laradock
segue meu laravel-echo-server.jsn
{
"authHost": "http://138.197.108.26",
"authEndpoint": "/broadcasting/auth",
"clients": [
{
"appId": "056105e7fb93aa1d",
"key": "3c418a02ff85db39de3008086ccf6d62"
}
],
"database": "redis",
"databaseConfig": {
"redis": {
"host": "redis",
"port": "6379"
},
"sqlite": {
"databasePath": "/database/laravel-echo-server.sqlite"
}
},
"devMode": true,
"host": null,
"port": "6001",
"protocol": "http",
"socketio": {},
"secureOptions": 67108864,
"sslCertPath": "",
"sslKeyPath": "",
"sslCertChainPath": "",
"sslPassphrase": "",
"subscribers": {
"http": true,
"redis": true
},
"apiOriginAllow": {
"allowCors": false,
"allowOrigin": "",
"allowMethods": "GET, POST",
"allowHeaders": "Origin, Content-Type, X-Auth-Token, X-Requested-With, Accept, Authorization, X-CSRF-TOKEN, X-Socket-Id"
}
}
Está usando o container laravel-echo-server?
docker-compose up -d laravel-echo-server
Se for o caso, eu já usei também (é sempre bom testar local primeiro), no arquivo laradock/laravel-echo-server/laravel-echo-server.json altere o authHost para http://nginx
"authHost": "http://nginx",
No arquivo de hosts local (/etc/hosts) adicione essa entrada
127.0.0.1 nginx
Reincie o container e tente novamente
Boa tarde Carlos,
com essa sua última resposta eu consegui resolver o problema.
1º Problema - O firewall estava bloqueando a porta.
2º Problema - eu estava rodando o laravel-echo-server dentro do container do workspace. Eu instalava o larave-echo-server via npm e iniciava ao iniciar o container. Daí eu deixei um container só para o laravel-echo-server(como você falou acim) e liberei as portas no firewall e tudo funcionou perfeitamente.
Maravilha amigo, vou finalizar o ticket. TMJ!
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!