C#应用程序可以与Node.js代码进行通信吗?

我有一个C#应用程序和一个Node.js应用程序。 我想在我的C#应用​​程序中按一个button发送三个参数到一个Node.js应用程序/函数作为input。 这可能吗?

编辑:这两个应用程序运行在同一台机器上。 C#应用程序将为Node.js应用程序提供三个参数。 Node.js应用程序将查询Web服务(POST),接收一些XML数据以及处理这些数据。 我知道我也可以在C#中完成这个任务,但在这种情况下,它必须是Node.js.

编辑#2和解决scheme :现在我已经select了: 4. Your node process runs a socket server and your C# app does requests over tcp

我还将提供一个似乎可行的解决scheme:

  • Node.js部分: http : //www.hacksparrow.com/tcp-socket-programming-in-node-js.html
  • C#部分: http : //www.codeproject.com/Articles/1415/Introduction-to-TCP-client-server-in-C

现在您已经准备好将来自C#应用程序的任何数据发送到Node.js服务器。

是的,沟通是可能的,就像几个人在你的问题的评论中指出的一样。

这些是(一些)选项:

  1. 您的节点进程运行一个http服务器,并且您的C#应用​​程序通过http执行JSON Rest请求
  2. 您的节点进程使用node-soap模块运行SOAP webservice
  3. C#应用程序启动您的节点应用程序,并通过写入节点进程inputstream并读取其输出stream来执行IPC。
  4. 您的节点进程运行套接字服务器,并且您的C#应用​​程序通过tcp执行请求。
  5. 您使用Redis或Message Queue等第三个进程/服务器
  6. 任何允许您共享数据的文件

我build议你去第一个选项,因为这不需要你定义一个语言协议通过“电线”发送。 另一个原因是有很多关于C#和node.js的文档。

作为C#中的客户端库,如果您不能使用最新版本的.NET(4.5),我build议您查看Restsharp作为客户端库。 如果你可以使用最新版本,使用HttpClient来调用你的Node.js restservice。 对于Node,只需使用Express。

选项2可能会很快,因为在VS中对Web服务有很好的支持,但是,我只使用node-soap作为客户端,因此无法评论node-soap web服务与C#客户端的良好关系。