党刊网站怎么做搜索推广代运营
概述
2个nodejs程序的一种通讯方式,管道通讯,跟其他语言一样,管道通讯是一种特殊的socket通讯,普通的socket通讯是通过监听端口触发通讯机制,管道通讯是通过监听文件的方式进行通讯,一般用于单机的多进程通讯,这里演示的是2个node的进程间管道通讯,也可以是node跟其他语言生成的程序进行通讯,例如服务端是node的程序,客户端是exe程序,这样可以实现exe和node间的通讯。
直接上demo吧
服务端
const net = require('net');
let path = require('path');
let server = net.createServer(function (connect) {//connect.setEncoding('binary');connect.on('error', function (exception) {console.log('socket error:' + exception);connect.end();});//客户端关闭事件connect.on('close', function (data) {console.log('client closed!');});connect.on("data", function (data) {//server接受到client发送的数据console.log("接收到:" + data);//server给client发送数据 connect.write("你好");})
}).listen(path.join('\\\\?\\pipe', '\\getAppListDesktop'));
server.on("error", function (exception) {console.log("server error:" + exception);
});
客户端
let net = require('net');
let path = require('path');
let client = new net.Socket();
//client.setEncoding('binary');
client.connect(path.join('\\\\?\\pipe', '\\getAppListDesktop'), function () {//client给server发送数据client.write("你好,我是来自客户端");
});
client.on('data', function (data) {console.log("收到服务端消息: " + data);//此处接受到数据后就可以进行合适的处理了//client.end();
});
client.on('close', function () {console.log('Connection closed');
});
client.on('error', function (error) {console.log('error:' + error);client.destory();
})
运行方式
使用node 启动服务端
再使用node 启动客户端