问题标签 [edge.js]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
57901 浏览

c# - 在 Node.js / 服务器端 javascript 中使用 .NET DLL

我有一个宠物项目,它是一个在线游戏,整个游戏引擎都是用 C# 编写的,我想知道是否可以从使用 Node.JS 构建的解决方案中调用这个现有程序集 (.dll) 的函数, Socket.IO, Express 等?

游戏引擎本身相当完整;测试和健壮。我希望有一些简洁的方法可以在没有太多开销的情况下公开其功能。

更新

稍微回答一下我自己的问题。我已经结束了构建自己的 Web 套接字服务器(基于最新的 Web 套接字协议文档)。它是用 C# 编写并使用 Mono 编译的,因此它可以托管在运行单声道的 Linux 机器上,因此(经过一些调整)我可以使用我现有的游戏引擎。

更新 2 现在存在一个完全符合我最初要求的项目 - http://tjanczuk.github.io/edge/#/

更新 3 Edge.js 支持 node 的最新版本和带有新edge-js包的 .net 核心。

支持 Node.Js 6.x、7.x、8.x、9.x、10.x、11.x 在 Windows/Linux/macOS 上支持 .NET Core 1.0.1 - 2.x。支持 Mono 运行时 4.8.x - 5.x。

可以从https://www.npmjs.com/package/edge-js安装

0 投票
4 回答
5071 浏览

c# - 通过 .NET SDK 在 node.js 上的指纹读取器

我正在尝试让 node.js 应用程序与名为 U.are.U 的 .NET SDK 指纹读取器进行交互。SDK 提供 .dll(win32 和 x64)、Java 和 .NET 库。我决定使用 .NET 来简化使用,让所有接口都可以使用。

所以,我目前面临的问题是如何调用那些 .NET 函数并仍然保留 node.js 的异步特性。应用程序流程(在 .NET 示例中)非常简单,对库进行了 3 次调用,指纹就完成了。

如何更改它以便它可以在 node.js 中使用,而不是在 .NET gui 程序中使用?

还需要注意的是,node.js 并不总是会调用 .NET 程序上的函数来接收函数。程序的识别部分是异步发生的,当有人将手指放在指纹读取器上时就会触发,这意味着 node.js 部分不知道什么时候会发生。所以我不能一直依赖在 .NET 部分询问数据,它必须在没有被询问的情况下调用 node.js 上的回调。所以基本上,这是一个双向通信,不仅仅是请求,因为使用网络服务器请求会容易得多。

我找到了一个 node.js 库,它可以缩小 .NET 和 node.js 之间的差距,称为edge.js,这有什么帮助吗?


基本上,edge.js可以使它工作,连同node-webkit(我将发布我的应用程序),我可以直接在页面中调用节点 API,因此我可以根据库的结果更新 DOM . 我需要能够注册一个异步任务,该任务可以通过发出事件或调用回调来从 CLR 内部通知给 node.js 对应方!

根据 edge.js 作者的说法,它可以轻松完成https://github.com/tjanczuk/edge/issues/54#issuecomment-17967082我只是没有足够的 .NET 技能来做到这一点(来自一个完整的模块) 与所有回调。

0 投票
0 回答
1492 浏览

c# - 连接 edge.js + node-webkit

Edge.js连接 node.js 和 .NET。Node-webkit是一个基于 Chromium 和 node.js 的应用运行时。有人把这两个放在一起吗?可能吗?

说明:我想用 HTML + Typescript 编写前端和 F# 后端的应用程序(大量计算等)。

0 投票
1 回答
1108 浏览

c# - 在 edge.js 应用程序中加载 WCF app.config 绑定

我有一个用于肥皂服务的 WCF 客户端,通过 SvcUtil 生成,我想通过edge.js使用它

是否可以使用 edge.js 从 app.config 加载服务模型绑定,还是必须在 c# 中构建绑定?

如果可以,app.config 应该放在哪里?

谢谢,

加雷斯。

0 投票
1 回答
915 浏览

c# - 在 Node.js 中调用 C# 代码时出现意外结果

所以我们有一个使用 edge.js 连接到 C# 编写的 dll 的小型 node.js 网络服务器。在我们的 c# 代码(只是一个类库)中,我们调用了一个对 Neo4j 执行查询的方法。现在,如果我们在控制台应用程序中测试它,它可以正常工作,但是当我们运行 node.js 时,我们会得到以下异常:

我们正在尝试做的是在 dll 中调用一个方法,该方法将返回一个 json 数组,node.js 将传递给前端,但是我们不能返回 json 数组?

我们的c#代码如下:

上面的代码在我们的测试控制台应用程序中 100% 工作。

现在对于 node.js 代码:

会不会是 C# 函数没有正确返回数据?它也可能是一个异步问题吗?

0 投票
1 回答
379 浏览

c# - 传递 SQL Server 连接(节点到 c#)

我目前正在使用 Node.js 服务器。该服务器使用 Edge.js 执行我的 C# 工作流代码(它是一个 dll)。

我们正在使用一个自定义编写的日志记录 dll,该 dll 记录到 SQL Server 表。Node.js 和我的工作流 dll 使用此日志记录 dll 将步骤记录到 SQL 数据库。理想情况下,它只需要打开一次与 SQL 数据库的连接,然后将其重用于 Node 和 Edge/c# 代码。

是否有某种方法可以在 Node.js 代码中打开连接,然后将该连接句柄传递给 Edge/C#。还是有更好的方法来做到这一点?

目前我只是在调用我的 c# Workflow dll 时打开连接,然后在最后关闭它。在 Node 中执行此操作会导致一些问题(假设是因为异步代码)“System.InvalidOperationException:ExecuteNonQuery 需要一个打开且可用的连接。连接的当前状态是打开的。”。

0 投票
1 回答
5128 浏览

node.js - 使用edge.js .Net C# 模块是否可以调用node.js 部分的过程,即进行反向调用?

您可以在此处查看从 Node.js -> C# 开始的互操作模型。

我想知道的是,C# 代码是否可以在返回之前从 C# 调用进程的 Node.js 部分中的方法?

想象一下,如果你有一个电话,比如

MyDotNetApi.csx 返回的位置,但留下一个套接字侦听器线程运行以处理 HTTP 请求。现在,如果流程的 Node.js 部分包含(不断变化的).Net 代码需要访问以包含在其 HTTP 响应中的信息,它能否以某种方式向 Node.js 索要它?

0 投票
1 回答
810 浏览

c# - node.js 为业务逻辑编写模块(edge.js)

我对 node.js 相当陌生,而且我觉得在 node.js 中编写业务逻辑并不是 100% 舒服。

我必须支持 MSSQL 作为数据库后端,所以我遇到了Edge.js。随后,我认为将我的 DataLayer 和 BusinessLogic 编写为 Edge.js 模块可能是一个好主意。

有没有人有这种方法的经验?有什么限制吗?

0 投票
1 回答
839 浏览

javascript - Node.js / Edge.js - 将 JS 变量插入 SQL

我目前正在使用 Node.js 和 Edge.js 将硬编码值插入 SQL 数据库:

这可以正常工作。

但是,我希望这些值是先前定义的 JS 变量,而不是硬编码。所以如果我定义了这个变量:

我想插入它来代替硬编码的电子邮件地址(下面的问题代码):

上述语法(以及各种变体)不起作用 - 是否可以使用 Node/Edge 在 SQL 中插入 JS 变量?提前谢谢了...

0 投票
1 回答
2816 浏览

.net - 在节点 js 中使用边缘绑定 DLL 库不成功

我尝试学习如何使用 edge(一个 node.js 模块)来绑定一个预编译的 DLL,但它不能以正确的方式工作......

我的 DLL 是一个非常简单的库,并且已经在其他 .Net 程序中进行了多次测试。我在 Jscript.Net 中编写了我的 DLL 文件:

很简单,Hello()方法会在stdout中打印出10000个“hello world”;

我可以通过以下方式在我的其他 Jscript.net 程序中调用它:

根据官方网站,我尝试过:

我的问题:我怎样才能成功地在边缘调用它?