Je sais que cette question est un peu gênant, mais le problème vient de Samsung TV 2010/2011 SmartTV (et lecteur blue ray, bien sûr, l'émulateur 2012 fonctionne bien). J'ai porté les exemples simples de chat viennent de la source et du paquet à l'application SmartTV. Les deux se reportent à l'interrogation JSONP, mais à partir de l'application SmartTV, seule une émission peut être émise/envoyée au serveur une fois. Recevoir le message du serveur pourrait être plusieurs fois sans aucun problème. Après avoir cherché la réponse dans Samsung D forum (bien sûr rien là-bas), je pense que le moyen le plus rapide de contourner ce problème est de déployer un serveur Express, en prenant les données post et JSON.parse, puis d'émettre Socket.io/Sockjs en interne à l'intérieur du serveur lui-même.Comment utiliser la demande de publication express pour émettre Socket.io ou Sockjs?
Quelqu'un pourrait-il me montrer un exemple de code facile pour que je puisse commencer à partir de là? Merci beaucoup.
Je fais rapidement le code, mais il semble qu'il ne fonctionne pas:
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>
mon autre événement »ne semble pas rien recevoir.
J'ai trouvé la solution. le 'mon autre événement' à une autre fonction et laisser le message et l'émettre l'appellent Bien que ce problème résolve, j'ai besoin de gérer le socket qui est connecté sur l'autre ligne – user1045217