¿Puede una aplicación C # comunicarse con el código Node.js?

Tengo una aplicación C # y una aplicación Node.js. Me gustaría presionar un botón en mi aplicación C # para enviar tres argumentos a una aplicación / función Node.js como entrada. es posible?

Edición: ambas aplicaciones se ejecutan en la misma máquina. La aplicación C # proporcionaría tres argumentos a la aplicación Node.js. La aplicación Node.js consultaría un servicio web (POST), recibiría algunos datos XML y manipularía esos datos. Sé que también podría hacer esa tarea en C #, pero en este caso tiene que ser Node.js.

Edición # 2 y solución : En este momento, he elegido: 4. Your node process runs a socket server and your C# app does requests over tcp .

También proporcionaré una solución que parece funcionar:

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

Ahora está listo para enviar cualquier dato desde su aplicación de C # al servidor Node.js.

Sí, la comunicación es posible, como varias personas han señalado en los comentarios de su pregunta.

Estas son (algunas de) las opciones:

  1. El proceso de su nodo ejecuta un servidor http y su aplicación C # realiza solicitudes de Resto JSON sobre http
  2. Su proceso de nodo ejecuta un servicio web SOAP utilizando el módulo node-soap
  3. La aplicación C # inicia su aplicación de nodo y usted hace IPC al escribir en el flujo de entrada del proceso del nodo y leer su flujo de salida.
  4. Su proceso de nodo ejecuta un servidor de socket y su aplicación C # realiza solicitudes a través de tcp.
  5. Utiliza un 3er proceso / servidor como Redis o Message Queue
  6. Cualquier cosa que te permita compartir datos como archivos.

Le recomendaría que vaya a la primera opción, ya que no requiere que defina un protocolo de idioma para enviar por “cable”. La otra razón sería que hay mucha documentación disponible para hacer Rest with C # y node.js.

Como la biblioteca cliente en C #, sugeriría que eche un vistazo a Restsharp como la biblioteca cliente si no puede usar la última versión de .NET (4.5). Si puede usar la versión más reciente, use HttpClient para llamar a su Node.js restservice. Para Nodo solo usa Express.

La opción 2 puede ser rápida, ya que hay un buen soporte en VS para los servicios web. Sin embargo, solo he usado node-soap como cliente, por lo que no puedo comentar qué tan bien están los servicios web node-soap con los clientes de C #.