ホームページ  >  記事  >  ウェブフロントエンド  >  javascript - C++とnodejs間の対話における問題と実際のコード

javascript - C++とnodejs間の対話における問題と実際のコード

php是最好的语言
php是最好的语言オリジナル
2018-08-02 15:00:161483ブラウズ

1. 質問

まず、大きな背景は、データ、関数などの C++ と js の間の相互作用 (アドオン) です。このうち、js は C++ の http ネットワーク リクエストである json データを C++ に転送します。その後、C++ はサブスレッドを開き、tcp 接続を確立し、http リクエストを作成し、最後に http リクエストの応答情報を に渡します。 jsレイヤー、またはnodejsをコールバックして応答情報を処理することも可能です。

その中で、C++はtcp接続を確立し、httpリクエストはクラスによって実装され、その処理は非同期でサーバーからの応答情報を取得して処理するコールバック関数on_read()があります。
C++ は js の json リクエストを取得した後、ネットワーク作業を開始します。

問題は:
a. 応答情報がいつ返されるか分からず、同期などの応答を待つことができません。
b. v8 API は js のメインスレッドの外では使用できません。つまり、on_read() コールバック関数で応答情報を直接 js に返すことはできません

2. 試すコード

rree

:
a. メインスレッドで待機する while ループを設定します。on_read() がデータを js に返した後、サブスレッドは正常に終了する可能性がありますが、C++ の非同期リクエストは終了します。は同期になってしまい意味がありません。
b. インターネットで libuv メソッドを見ましたが、libuv 動作関数が C++ 非同期応答メッセージを取得できないという問題がまだあります。主な問題は、非同期メッセージを処理して C++ がノードに返す方法です。スレッド間で処理します。

関連記事:

NodeJS と Mysql の相互作用サンプルコード_JavaScript スキル

C# コードと JavaScript 関数間の相互呼び出しの詳細な紹介

関連動画:

Nodejs + mongoDB 実践開発 Weiboシステムビデオチュートリアル

以上がjavascript - C++とnodejs間の対話における問題と実際のコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。