![](/img/trans.png)
[英]How to tail a named pipe to Flume Windows node (Flume Node Service)
[英]Windows named pipe in node js (preferred shared memory)
我使用命名管道在Windows中的兩個進程之間共享一些數據。 一個是節點進程,另一個是C#進程。 以下是我在節點進程中使用的代碼示例:
var net = require('net');
var PIPE_NAME = "mypipe";
var PIPE_PATH = "\\\\.\\pipe\\" + PIPE_NAME;
var L = console.log;
var server = net.createServer(function(stream) {
L('Server: on connection')
stream.on('data', function(c) {
L('Server: on data:', c.toString());
});
stream.on('end', function() {
L('Server: on end')
server.close();
});
stream.write('Take it easy!');
});
server.on('close',function(){
L('Server: on close');
})
server.listen(PIPE_PATH,function(){
L('Server: on listening');
})
我在c#中使用NamedPipeClientStream來讀取數據。 我在兩側循環執行此操作,例如我的節點進程是生產者而C#進程是消費者。
這很好用。
但有時C#循環會掛起,在我的節點進程中,我想覆蓋舊數據上的新數據。 我想知道我是否可以在我的管道中指定一些最大尺寸(我在nodejs中創建的那個)或者數據的超時但是在標准文檔中找不到這樣的東西。
如果無法以這種方式解決,有一個共享的內存路由來解決問題,但我找不到任何穩定的nodejs共享內存庫,它在windows上運行良好(我現在沒有太多時間寫一個)。 我需要一些指示才能朝着正確的方向前進。
任何建議表示贊賞。 謝謝。
編輯:我真的想用共享內存實現上面的東西,因為我需要快速共享大量數據,我需要調整性能。 關於如何實現它的任何指針?
我想出了一種根據我的要求在nodejs的可寫流中使用drain事件的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.