nodejs 管道通讯

2023-12-14 19:36:14

概述

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 启动客户端

文章来源:https://blog.csdn.net/hongkid/article/details/134930994
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。