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

Problemas no WebSocket

Na minha aplicação após implementar os códigos para o WebSocket tanto no cliente quanto no servidor, após cadastrar um novo produto para promoção o código não é retornado e emitido um alert no navegador. Alguém poderia analisar os códigos abaixo e ver onde pode esta o erro?

Script no 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>

Script no 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....");
});

Script promocoes route

module.exports = function(app) {
    app.get('/promocoes/form', function(req,res) {
        var connection = app.infra.connectionFactory();
        var produtosDao = new app.infra.ProdutosDAO(connection);
        produtosDao.lista(function(err, results){
            res.render('promocoes/form', {lista:results});
        });
        connection.end();
    });

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

Script form promocoes

<html>
    <body>
        <form action='/promocoes' method="post">
        <div>
            <input type="text" name="mensagem" />
        </div>
        <div>
            <select name="livro[id]">
                <%for(var i=0; i < lista.length; i++){%>
                    <option value="<%=lista[i].id%>"><%=lista[i].titulo%></option>
                <%}%>
            </select>
        </div><br />
        <input type="submit" value="Cadastrar Promoção" />
        </form>
    </body>
</html>
2 respostas

Oi Jorgito, olhando o código não vi problemas, mesmo sabendo que deve ter algo :). Deu algum erro no console do navegador ou do node? Se puder, da uma olhada também aqui no repositório para ver se percebe algo => https://github.com/asouza/casadocodigo-javascript

solução!

Alberto, não gera nenhum erro nem no console nem no navegador. Vou olhar o seu repositório para ver se algo esta diferente.