Code en Python, communique dans Node.js et Socket.IO, présent en HTML

Vous avez un script python diagnosis.py qui génère en temps réel de l'événement base de données. À l'aide de Node.js vous pouvez lancer aussi un enfant de processus de capture et de sa sortie et ensuite à l'aide d'une Douille.IO émettent que pour le client et de le présenter à l'aide de HTML.

Serveur

var util  = require('util'),
    spawn = require('child_process').spawn,
    ls    = spawn('python', ['diagnosis.py']);

var app = require('http').createServer(handler)
  , io = require('socket.io').listen(app)
  , fs = require('fs')

app.listen(80);

function handler (req, res) {
  fs.readFile(__dirname + '/index.html',
  function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading index.html');
    }

    res.writeHead(200);
    res.end(data);
  });
}

io.sockets.on('connection', function (socket) {
    ls.stdout.on('data', function (gdata) {
      socket.emit('news', gdata.toString());
    });
});

Client

<html>
    <head>
        <script src="/socket.io/socket.io.js"></script>
        <script>
          var d = "";
          var socket = io.connect('http://localhost');
          socket.on('news', function (data) {
            d += data;
            document.getElementById('data').innerHTML = d;
            console.log(data);
          });
        </script>
    </head>
    <body>
        <div id="data"></div>
    </body>
</html>

Question

C'est super et tout, mais si vous êtes à la recherche pour le même HTML-Node.js pouvoir de communication de cette Prise.IO fournit, mais plutôt entre Node.js et Python? Comment voudriez-vous faire cela? Il n'y a pas de serveur web, de sorte Socket.IO ne fait pas beaucoup de sens et de communication de nu TCP n'est pas la même alimentation/de l'élégance. Comment puis-je obtenir communication full duplex entre Node.js et Python?

Code en Python, communique dans Node.js et Socket.IO, présent en HTML

Mise à jour j'ai répondu à ma propre question, mais je suis ouvert à une approche alternative. RPC n'est pas tout à fait faire ce que je veux.

source d'informationauteur melhosseiny