我有一个C#应用程序和一个Node.js应用程序.我想在我的C#应用程序中按一个按钮,将三个参数作为输入发送到Node.js应用程序/函数.这可能吗?
编辑:两个应用程序在同一台机器上运行.C#应用程序将为Node.js应用程序提供三个参数.Node.js应用程序将查询Web服务(POST),接收一些XML数据并操纵该数据.我知道我也可以在C#中完成这项任务,但在这种情况下它必须是Node.js.
编辑#2和解决方案:现在我选择了:4. Your node process runs a socket server and your C# app does requests over tcp
.
我还将提供似乎有效的解决方案:
现在您已准备好将C#应用程序中的任何数据发送到Node.js服务器.
And*_*dyD 38
是的,可以像几个人在你的问题评论中指出的那样进行沟通.
这些是(某些)选项:
我建议你选择第一个选项,因为这不需要你定义一个语言协议来通过"线"发送.另一个原因是有很多关于使用C#和node.js进行Rest的文档.
作为C#中的客户端库,如果您不能使用最新版本的.NET(4.5),我建议您查看Restsharp作为客户端库.如果您可以使用最新版本,请使用HttpClient来调用Node.js restservice.对于Node,只需使用Express.
选项2可能很快,因为VS对webservices有很好的支持,但是,我只使用node-soap作为客户端,因此无法评论node-soap webservices与C#客户端的关系.
手动处理进程间通信非常耗时,而旧的替代方案 Edge.js自 2017 年中期以来一直没有更新。
我的组织维护一个库Jering.Javascript.NodeJS,它允许您从 C# 调用 Node.js。
string javascriptModule = @"
module.exports = (callback, x, y) => { // Module must export a function that takes a callback as its first parameter
var result = x + y; // Your javascript logic
callback(null /* If an error occurred, provide an error object or message */, result); // Call the callback when you're done.
}";
// Invoke javascript in Node.js
int result = await StaticNodeJSService.InvokeFromStringAsync<int>(javascriptModule, args: new object[] { 3, 5 });
// result == 8
Assert.Equal(8, result);
Run Code Online (Sandbox Code Playgroud)
您可以调用任何有效的 Node.js 模块,包括执行问题中列出的任务的模块:查询 Web 服务 (POST)、接收 XML 数据以及操作该数据。
跨平台支持
性能特点
长期运行的应用程序支持
string
支持以表单、Stream
表单或磁盘上的文件调用 javascript 。 归档时间: |
|
查看次数: |
44713 次 |
最近记录: |