Node.js"new Socket"是否创建了一个Unix文件套接字?

use*_*357 7 unix sockets file file-descriptor node.js

在过去的几周里我一直在使用node.js,我需要实现FAST-CGI协议.问题是当我创建一个UNIX套接字(通过"new Socket")时,我需要获取文件名或文件描述符.但是socket.fd为null(默认参数).

我的问题是:"new Socket"是否会创建一个操作系统套接字目标文件,如果是这样,我该如何获取套接字文件描述符或文件名?

我不确定这是否应该如何创建一个Socket,但是就是这样:
node:

var net = require(net)
var socket = new net.Socket()
console.log(socket);

{
 bufferSize: 0,
 fd:null,
 type: null,
 allowHalfOpen: false,
 _writeImpl: [Function],
 _readImpl: [Function],
 _shutdownImpl: [Function]
}
Run Code Online (Sandbox Code Playgroud)

uso*_*ban 8

好吧,当你连接套接字时,socket.fd不是null,至少在我的情况下不是这样,所以请提供一个示例案例.

请注意,您还可以在创建套接字时指定现有文件描述符.

编辑:

var net = require('net'),
    fs = require('fs'),
    sock;

// Create socket file
fs.open('/tmp/node.test.sock', 'w+', function(err, fdesc){
    if (err || !fdesc) {
        throw 'Error: ' + (err || 'No fdesc');
    }

    // Create socket
    sock = new net.Socket({ fd : fdesc });
    console.log(sock);
});
Run Code Online (Sandbox Code Playgroud)

  • 这不再起作用,它说"不支持的fd类型:FILE".:( (4认同)