У меня проблемы с реализацией двусторонней связи между .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();
}
}