3

現在のプロセスとはまったく関係のない別のノードプロセスにソケットを送信できるnode.jsのネイティブ(c ++)モジュールを作成したいと思います。そのために、このための非常に簡単なAPIを備えた補助ライブラリを使用することを考えました。私が今解決しなければならない問題は、node.jsのソケットオブジェクトのfdまたはハンドルを取得する方法です。

tcp_wrap.cc&にはTCPWrapクラスがありtcp_wrap.h、これにはlibuvからのオブジェクトhandle_を保持する、uv_tcp_tというプロパティがありますが、そのプロパティはプライベートです。また、これはnode.jsのモジュールであり、node.js自体に直接含まれていないため、#includeすることはできません。そのクラスを取得するためだけにソースファイルをモジュールにコピーするのが良い考えかどうかはわかりません...

私がそれをどのように行うことができるかについて何か考えがありますか?

私はウィノウで走る必要はありません、タフです。

ありがとう!

4

1 に答える 1

1

私はついにそれを行う方法を見つけました。ここでノードモジュールを見つけることができます: https ://github.com/VanCoding/node-ancillary

ヘッダー「tcp_wrap.h」、「stream_wrap.h」、「handle_wrap.h」を取得し、「tcp_wrap.h」を含めました。

次に、次の方法でオブジェクトを取得できます。

TCPWrap* wrap = static_cast<TCPWrap*>(args[0]->ToObject()->GetPointerFromInternalField(0));
StreamWrap* s = (StreamWrap*)wrap;

次のコードは、ファイル記述子へのアクセスを提供します

s->GetStream()->fd
于 2012-04-03T09:20:58.213 に答える