我正在开发一个 node.js 应用程序,它将连接到 UNIX 套接字(在 Linux 机器上)并促进网页和该套接字之间的通信。到目前为止,我已经能够在我的主 app.js 中创建套接字并使用此代码来回通信:
var net = require('net');
var fs = require('fs');
var socketPath = '/tmp/mysocket';
fs.stat(socketPath, function(err) {
if (!err) fs.unlinkSync(socketPath);
var unixServer = net.createServer(function(localSerialConnection) {
localSerialConnection.on('data', function(data) {
// data is a buffer from the socket
});
// write to socket with localSerialConnection.write()
});
unixServer.listen(socketPath);
});
此代码导致 node.js 在 /tmp/mysocket
创建一个 UNIX 套接字,我通过使用 nc -U/tmp/mysocket
进行测试获得了良好的通信命令行。不过……
我想从我的 node.js 应用程序建立到现有 UNIX 套接字的连接。使用我当前的代码,如果我从命令行 (nc -Ul/tmp/mysocket
) 创建一个套接字,然后运行我的 node.js 应用程序,则套接字和我的应用程序之间没有通信( 'connect' 事件不会从 node.js 服务器对象触发)。
关于如何完成此任务的任何提示?我对 node.js 函数 net.createSocket
而不是 net.createServer
的实验到目前为止都失败了,我不确定这是否是正确的轨道。
最佳答案
您要查找的方法是net.createConnection(path)
:
var client = net.createConnection("/tmp/mysocket");
client.on("connect", function() {
... do something when you connect ...
});
client.on("data", function(data) {
... do stuff with the data ...
});
关于javascript - 使用 node.js 连接到已经建立的 UNIX 套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20807900/