我正在尝试为演示搭建一个快速的 node.js/edge.js/C# 桥。
我必须使用“.Net 调用 Node.js”样式,因为现有的 C# 代码使用了许多配置值,我无法将它们添加到 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: 'user@example.com', 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# 代码之间进行通信?