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

Alert não funciona

Pessoal, estou tentando rodar o websocket mas o alert não está aparecendo na página. Verifiquei via console que a mensagem está sendo enviada pelo método app.get('io').emit("novaPromocao",promocao); dentro de promocao.js e também verifiquei que o websocket está funcionando no client para index.ejs

Também fui ao docs do socket.io verifiquei que a recomendação de uso é a mesma que estou usando e só não entendo porque o alert não está aparecendo.

Segue o meu código:

index.ejs

<script src="/socket.io/socket.io.js"></script>
<script>
    var socket = io();
    socket.on('novaPromocao', function(data) {
        alert("Livro em promoção " + data.livro.id);
    });
</script>

promocoes.js

    app.post("/promocoes", function(req,res) {
        var promocao = req.body;
        app.get('io').emit("novaPromocao",promocao);
        console.log(promocao);    
        res.redirect("/promocoes/form");
    });

app.js

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

app.set('io', io);

http.listen(3000, function() {
    console.log("servidor rodando");
})

Obrigado :-)

4 respostas

você não teria que utilizar o "io.connect" :

var socket =  io.connect();
    socket.on('novaPromocao', function(data) {
        alert("Livro em promoção " + data.livro.id);
    });

para o alert funcionar?

espero ter ajudado.

Olá Jeferson, tentei essa alternativa descrita no https://socket.io/docs/ e não funcionou também.

solução!

Pessoal, descobri o problema, dentro da pasta public disponibilizada para download no projeto havia um index.ejs e no momento de roteamento o node apontava para esse arquivo ao invés do que está dentro da pasta home. My mistake!