IPC связь между .net и nodejs - PullRequest
       35

IPC связь между .net и nodejs

0 голосов
/ 30 апреля 2019

У меня проблемы с реализацией двусторонней связи между .NET и приложением Node.js.

Я хочу, чтобы они могли передавать несколько сообщений назад и вперед между ними перед закрытием канала, но что-то не совсем работает при отправке сообщений с Node-сервера.

Я могу отправлять сообщения от клиента на сервер, но при отправке с сервера reader.ReadLine() получает данные, но никогда не продолжается, пока я не закрою соединение.

Мне кажется, что отсутствует флеш или что-то подобное, но я нигде не могу найти, как это должно быть реализовано. Я не хочу закрываться и переподключаться, если это возможно.

Узловой сервер:

const net = require("net");

const server = net.createServer((stream) => {
  console.log("Server: on connection");

  stream.on("data", (buffer) => {
    console.log("Got data:", buffer.toString());
    stream.write("Reverse me");
  });

  stream.on("end", () => {
    console.log("Stream ended");
    server.close();
  });
});

server.listen("\\\\.\\pipe\\myPipe", () => {
  console.log("Listening...");
});

C # клиент:

static void Main(string[] args)
{
    var client = new NamedPipeClientStream("myPipe");

    client.Connect();

    StreamReader reader = new StreamReader(client);
    StreamWriter writer = new StreamWriter(client);

    while (true)
    {
        if (!client.IsConnected)
        {
            break;
        }

        var line = reader.ReadLine();

        writer.WriteLine(line.Reverse());
        writer.Flush();
    }
}
...