javascript - 使用 node.js 连接到已经建立的 UNIX 套接字?

标签 javascript linux node.js sockets unix-socket

我正在开发一个 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/

相关文章:

Javascript可以在FF中运行,但不能在IE或Chrome中运行(简单功能)

javascript - 我不明白为什么这个循环不是无限的

javascript - 将日期从 asp 传递到 javascript 函数

c# - 单声道(Linux、C#): DLL in same folder can not be found (System. DllNotFoundException)

javascript - Chrome 扩展 : Checking if content script has been injected or not

linux - 关于 Linux 的 RAW 套接字问题

linux - 特定组拥有的字符串的 GREP

javascript - 如何通过 PhantomJs 获取高质量的 html 快照图像?

node.js - 在 Hapi.js 中将 http 重定向到 https

node.js - 如何检查 Openwhisk (IBM Cloud Functions) 是否已被调用?