デモ用にnode.js/edge.js/C#ブリッジをまとめようとしています。edge.jsからC#ホストと通信します
既存のC#コードではいくつかの設定値を使用するので、".Net calling Node.js"スタイルを使用する必要があります。これは複数のバージョンを同時に実行する必要があるためnode.exe.configに追加できません。
private static async Task Start() {
Func<object, Task<object>> edge = EdgeJs.Edge.Func(@"
var login = require('login.js');
var edge = require('edge')
login({ email: '[email protected]', password: 'shh' }, function callback(err, api) {
if (err) return console.error(err);
// This will keep listening until terminated
api.listen(function callback(err, message) {
if (err) return console.error(err);
// At this point I need to send the message back to this class so it can be processed..
console.log(message); // send the message to C#
// ... and then return the response via the api
api.send('response goes here');
});
});
return function (data, callback) {
callback(null, er...);
}
");
}
ので、コードはイベントループにメッセージを待って、応答されています
は、だから私はこのコードを持っています。これはすべてハードコーディングされた値で動作します。しかし、処理のためにC#にメッセージを提出する必要があり、edge.jsとC#アプリケーションの間でやりとりする方法を理解できません。
必ずコールバックを経由しなければなりませんが、構造化の仕方を理解できていないようで、時間が短くなっています。私は決してJavaScriptの専門家ではありません。
コールバックを使用してイベントループ内からエッジコードとC#コードを通信するにはどうすればよいですか?
これは非常に有用だったがありがとう:残念ながらエッジが複数回呼び出されて好きではなかった(エッジコールバックを呼び出すと、エッジのセッションを終了します)ので、私はそれの上に構築しなければなりませんでした。 – stuartd