我在实现.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();
}
}