ugrás a tartalomhoz

Node.js és C kód

roncsak · 2011. Már. 10. (Cs), 16.19
Sziasztok!
Ismerkedem a node.js-sel és szeretnék egy websocket-es alkalmazást készíteni. A node.js-t és a socket.io-t be is lőttem, működik már csak arra lenne szükségem, hogy C kódot futtathassak a node-ban. Külső perifériák által fogadott adatokat szeretném továbbítani websocketen keresztül a böngészőnek. Ezek a perifériák hol bluetoothon keresztül csatlakoznak a nodejs-t futtató eszközre, hol pedig usb-n.

Kellene egy külön modult írni a node.js-hez ehhez, vagy anélkül is megoldható?
Ha egyik sem járható megoldás, akkor viszont mennyire gondoljátok szép megoldásnak, ha a node.js unix socketen kommunikál a C-ben írt adatfeldolgozóval és mellette folyamatosan küldi a unix socketről érkező adatokat a websocketbe ?
 
1

Bárhogy

janoszen · 2011. Már. 10. (Cs), 16.40
Igazából mind a két féle képpen meg tudod oldani. Vagy modult írsz a Nodehez vagy valami socketen kommunikálsz vele. Hogy melyik a célravezetőbb, azt az dönti el, hogy az alkalmazásodnak milyen igényei vannak és mennyire vagy gyakorlott a C programozásban. A Unix socket egyáltalán nem hack, teljesen valid megoldás.
2

Futtatás

Poetro · 2011. Már. 10. (Cs), 17.35
Vagy megteheted, hogy child processként futtatod a C alkalmazásodat, és annak a kimenetét továbbítod a websocket-be.
var util   = require('util'),
    spawn = require('child_process').spawn,
    ls    = spawn('ls', ['-lh', '/usr']);

ls.stdout.on('data', function (data) {
  // Itt kommunikálsz a websocket-tel.
  console.log('stdout: ' + data);
});
ls.on('exit', function (code) {
  // Itt kommunikálsz a websocket-tel.
  console.log('child process exited with code ' + code);
});
További információért, lásd a Child Processes dokumentációt.
3

ty

roncsak · 2011. Már. 17. (Cs), 16.50
Köszönöm szépen a hozzászólásokat!
A child process megoldás kiemelkedően tetszett! :)