.net和Node.js之间的IPC通信

时间:2019-04-30 08:46:49

标签: c# .net node.js ipc named-pipes

我在实现.NET和Node.js应用程序之间的双向通信时遇到问题。

我希望它们能够在关闭通道之前在它们之间来回传递多条消息,但是从节点服务器发送消息时,某些功能并不能正常工作。

我可以将消息从客户端发送到服务器,但是当从服务器发送消息时,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();
    }
}

0 个答案:

没有答案