tommieと申します。 整理すると、 同じマシン上なら、Node.jsとネイティブアプリの構成方法として、以下が考え られますね。
1.Node.jsとネイティブアプリを別プロセスとして実行し、プロセス間通信で データ交換する → 大津さんの回答 2.Node.jsとネイティブアプリを同一プロセスで別スレッドとして実行し、ス レッド間通信でデータ交換する 興味があったので2の同一プロセス別スレッドの場合について調べてみた所、 libuvのuv_queue_work()が使えるようです。 以下のサイトが参考になりました。 Node.js でマルチスレッド対応のネイティブモジュールを作成する http://d.hatena.ne.jp/hecomi/20121021/1350819390 ただし、Windowsで動くのか不明ですが。 (2013/04/08 14:38), 竹内佑介 wrote: > 大 津さん > > 質 問へのご回答、ありがとうございました。 > とりあえず、コマンドパイプの方法を試してみます。 > また何かありましたら、よろしくお願いします。 > > 以上です。 > > > 2013年4月8日 12:59 Shigeki Ohtsu <[email protected] > <mailto:[email protected]>>: > > 大津です。 > > 具体的にどのようなネイティブアプリを考えてらっしゃるのかがわからな > いので > すが、 > > > node.js初心者なので基本的な質問になりますが、 > > node.jsとネイティブアプリで通信を行う方法にはどのようなものがあ > るかに > > ついて教えて頂けないでしょうか。 > > **一般的な広い意味**での「Node.jsとネイティブアプリで通信を行う方法」 > > というのでしたらソケット通信と名前付きパイプの2つの種類のプロセス > 間通信 > が挙げられます。(後者は同一サーバ上であることが条件です)どちらも > Node.js の net モジュールを使って利用することができます。 > > > 現在私がやろうとしていることは、 > > Windowsサービス上で動作しているC++モジュールのコンソール上メッセージ > > を、Webソケットを用いてブラウザ上で表示させるというものです。 > > コンソール上の標準出力に出続けているものなら、そのままコマンドパイプで > Nodeの標準入力で受けるのが簡単じゃないでしょうか? > > https://gist.github.com/shigeki/5334078 > > な感じで Nodeの標準入力をそのまま WebSocket に渡すことができるの > で、あと > はパイプでつないでやればいいんじゃないかと思います。 > > -- > > --- > このメールは Google グループのグループ「Node.js 日本ユーザグルー > プ」の登録者に送られています。 > このグループから退会し、メールの受信を停止するには、 > [email protected] > <mailto:nodejs_jp%[email protected]> にメールを送信し > ます。 > その他のオプションについては、https://groups.google.com/groups > /opt_out にアクセスしてください。 > > > > > > -- > ********************************************* > 電気通信大学情報システム学研究科 > 社会知能情報学専攻2年 > 竹内 佑介(たけうち ゆうすけ) > e-mail:[email protected] <mailto:[email protected]> > ********************************************* > -- > > --- > このメールは Google グループのグループ「Node.js 日本ユーザグループ」の > 登録者に送られています。 > このグループから退会し、メールの受信を停止するには、 > [email protected] にメールを送信します。 > その他のオプションについては、https://groups.google.com/groups/opt_out > にアクセスしてください。 > > -- --- このメールは Google グループのグループ「Node.js 日本ユーザグループ」の登録者に送られています。 このグループから退会し、メールの受信を停止するには、[email protected] にメールを送信します。 その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
