【发布时间】:2014-01-15 11:18:18
【问题描述】:
我正在开发一个 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 触发的)。 js 服务器对象)。
关于如何完成此任务的任何提示?我对 node.js 函数 net.createSocket 而不是 net.createServer 的实验到目前为止都失败了,我不确定这是否是正确的轨道。
【问题讨论】:
标签: javascript linux node.js sockets unix-socket