Как использовать код NodeJS в приложении C # win form

#c# #node.js

#c# #node.js

Вопрос:

Я разработал приложение на node JS, которое работает отлично, у меня есть другое приложение, написанное на C # dot net, его приложение Win form, я хочу использовать вызов моего кода NodeJS внутри приложения winform.

Например, я вызову функцию в приложении C #

response = CallNodeJsScript(argument1, argument2...);

Есть ли какой-либо способ сделать это?

Может ли Electron быть вариантом для этого?

Пожалуйста, помогите, спасибо

Комментарии:

1. Ну, NodeJS обычно используется для создания веб-приложения. Так что, возможно, вы можете сделать http-запрос к узловому приложению, которое выполнит вашу функцию и вернет ответ? Я не знаю, вы не сделали сценарий полностью понятным.

2. На самом деле, в NodeJS есть библиотека, я хочу каким-то образом показать, что если кто-нибудь откроет мое настольное приложение, это приложение создаст локальный сервер, как Electron, а затем сделает все необходимое

3. На самом деле это немного излишне. Что именно делает эта функция узла? Насколько это сложно? Не могли бы вы просто переписать его на c #?

4. Приложение C # не использует библиотеку JavaScript. Как и другие комментарии, вы либо предоставляете свои функции JavaScript через REST API, либо консольное приложение, а затем приложение C # может вызвать его. Также можно переписать все на C #, поскольку .NET работает намного быстрее, чем Node.js .

5. adiwajshing.github.io/Baileys/…

Ответ №1:

я не знаю об elcotron, но вы можете сделать smt следующим образом:

 let handler = {}
handler.mult = function (num1, num2) {
    return num1 * num2
}

const net = require('net');

const server = net.createServer(conn => {
    console.log('new client');

    conn.on('data', data => {
        let text = data.toString('utf8')
        let json = JSON.parse(text)
        let func_name = json.name 
        let res = handler[func_name].apply(json.args)
        conn.write(res)
    });

    conn.on('end', () => {
        console.log('client left'); 
    });
});

server.listen(9090);
  

С помощью этого вы можете в своем c # создать tcp до 127.0.0.1: 9090 и отправить json в формате:

 {
   name:"mult",
   args:[2,5]
}
  

Вам нужно добавить все функции, которые вы хотите использовать, в обработчик

Комментарии:

1. Спасибо, но как я могу запустить сервер 127.0.0.1: 9090 с c #?