Как использовать экспресс-запрос на отправку Socket.io или Sockjs?

Я знаю, что этот вопрос довольно неудобен, но проблема исходит от Samsung TV 2010/2011 SmartTV (и проигрывателя Blue Ray; конечно, эмулятор 2012 года работает нормально). Я перенес простые примеры чата из источника и пакета в приложение SmartTV. Оба они возвращаются к опросу JSONP, но из приложения SmartTV можно было отправить / отправить на сервер только один раз. Получать сообщение с сервера можно несколько раз без каких-либо проблем. После поиска ответа на форуме Samsung D (там, конечно, ничего), я думаю, что самый быстрый способ обойти эту проблему - развернуть сервер Express, взяв данные публикации и JSON.parse, а затем выпустить Socket.io / Sockjs внутри внутри самого сервера.

Может ли кто-нибудь показать мне простой пример кода, чтобы я мог начать с него? Большое спасибо.

Я быстро пишу код, но похоже, что он не работает:

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>

«другое мое событие», похоже, ничего не получает.

6
задан user1045217 23 February 2012 в 14:01
поделиться