So che questa domanda è un po 'imbarazzante, ma il problema deriva da Samsung TV 2010/2011 SmartTV (e lettore blu ray, ovviamente l'emulatore 2012 funziona bene). Ho portato i semplici esempi di chat provenienti dalla sorgente e dal pacchetto all'app SmartTV. Entrambe rientrano nel polling JSONP, ma dall'app SmartTV possono essere emesse/inviate al server una sola volta. Ricevere il messaggio dal server potrebbe essere più volte senza alcun problema. Dopo aver cercato la risposta nel forum Samsung D (ovviamente nulla lì), penso che il modo più veloce per aggirare questo problema è quello di distribuire un server Express, prendendo i dati del post e JSON.parse, quindi emettere Socket.io/Sockjs internamente all'interno del server stesso.Come utilizzare Express post request per emettere Socket.io o Sockjs?
Qualcuno potrebbe mostrarmi un codice di esempio facile in modo da poter iniziare da lì? Molte grazie.
ho subito rendere il codice, ma sembra che non funziona:
lib/server.js
var express = require('express')
, app = express.createServer()
, io = require('socket.io').listen(app);
app.listen(80);
app.use(express.bodyParser());
app.get('/', function (req, res) {
res.sendfile('/var/www/mpgs_lite_v3/index.html');
});
app.post('/', function(req, res){
console.log(req.body);
io.sockets.emit('my other event', req.body);
res.redirect('back');
});
io.sockets.on('connection', function (socket) {
//socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
index.html
<html>
<head>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
</head>
<body>
<form method="post" action="/">
<input type="hidden" name="_method" value="put" />
<input type="text" name="user[name]" />
<input type="text" name="user[email]" />
<input type="submit" value="Submit" />
</form>
</body>
</html>
'il mio altro evento' non sembra ricevere qualsiasi cosa
Ho trovato la soluzione. il "mio altro evento" a un'altra funzione e lasciare che sia post ed emetti chiamarlo.Ma questo problema risolva, ho bisogno di gestire il socket che si connette su altra linea. – user1045217