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 :-)