Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Problema com uso do socket.io no client

Prezados,

segui os passos das aulas normalmente, porém ao utilizar o socket.io na página index.ejs (página da home), ele não está conseguindo encontrar o arquivo socket.io.js.

Inspecionando as requisições na aba rede do developer tools do chrome, dá o seguinte erro: 404 Not Found

Alguém pode me ajudar a encontrar o porque não está funcionando? Uma diferença que notei foi que a versão do socket.io instalada aqui foi a 2.0.1 (mais recente, instalada automaticamente pelo npm install).

Segue o código:

        <script src="/socket.io/socket.io.js"></script>
        <script>
            const socket = io();
            socket.on('promocao', (data) => {
                alert(`Nova promoção! ${data.livro.id}`);
            });
        </script>

O erro é acusado em <script src="/socket.io/socket.io.js"></script>

1 resposta
solução!

Encontrei o problema, estava no server:

Em app.js

Em vez de:

const app = require('./config/express')();
const http = require('http').Server(app);
const io = require('socket.io')(http);

app.set('io', io);

app.listen(3000, () => {
    console.log('Servidor em execução');
});

Troquei para:

const app = require('./config/express')();
const http = require('http').Server(app);
const io = require('socket.io')(http);

app.set('io', io);

http.listen(3000, () => {
    console.log('Servidor em execução');
});

Resumindo: o listen é chamado em http não no app do express