2014-05-22 25 views
5

Jestem rozwidlenia skryptu Python z NodeJS i domyślnie rozwidlony NodeJS utworzyć IPC między tym nowym procesem a rodzicem.Proces w Pythonie rozwidlony przez NodeJS - Alternative to process.send() dla Pythona?

Z NodeJS, aby wysłać wiadomość od dziecka do rodzica Mam process.send({msg : 'toto'})

Jak mogę zrobić z Pythona?

http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options

+1

Czy można sprawdzić http://semanchuk.com/philip/posix_ipc/ –

+0

Właśnie sprawdziłem go, więc jest to rozdzielone moduł? Czy istnieje sposób użycia tego, co Python zapewnia wbudowane, aby spróbować interakcji z NodeJS IPC? – Unitech

+0

Niestety nie wiem. Jeśli wiedziałbym, że chciałbym opublikować odpowiedź, a nie komentarz jako podpowiedź :) –

Odpowiedz

12

Ok znalazłem to w końcu jest dość prosta. Chodzi tylko o napisanie odpowiedniego deskryptora pliku.

parametru bocznej NodeJS, tarło skrypt tak:

var child = child_process.spawn('python', ['hello.py'], { 
    stdio:[null, null, null, 'ipc'] 
}); 

child.on('message', function(message) { 
    console.log('Received message...'); 
    console.log(message); 
}); 

jako "IPC kanału jest parametrem 4rd, trzeba będzie pisać na deskryptora 3. Na stronie Python:

import os 

os.write(3, '{"dt" : "This is a test"}" + "\n", "utf8") 

Gotowe. Otrzymasz wiadomość na child.on („komunikat” zwrotnego.

Cheers!

+2

jak o Pythonie przeczytać z pliku node.js? Spróbowałem opcji 'ipc' na stdin, kontynuuje czytanie i blokuje wykonanie – jerry

+1

https://github.com/extrabacon/python-shell - ma send(), który wysyła dane do stdin programu python – Amarsh