Javascript 正在socket.io-client中检查CA

Javascript 正在socket.io-client中检查CA,javascript,node.js,https,websocket,socket.io,Javascript,Node.js,Https,Websocket,Socket.io,我创建了一个带有socket.io的HTTPS服务器和一个带有socket.io客户端的客户端。 问题是socket.io-client显然没有通过其选项中的给定CA检查HTTPS连接的有效性。 为了澄清,这里有一个示例代码:在简单的https请求中,如果我没有在客户端提供CA,我会得到错误:无法验证第一个证书,但通过socket.io建立客户端连接,这完全不是我想要的 //Client var https = require('https'), socketClient = requ

我创建了一个带有socket.io的HTTPS服务器和一个带有socket.io客户端的客户端。
问题是socket.io-client显然没有通过其选项中的给定CA检查HTTPS连接的有效性。
为了澄清,这里有一个示例代码:在简单的https请求中,如果我没有在客户端提供CA,我会得到
错误:无法验证第一个证书
,但通过socket.io建立客户端连接,这完全不是我想要的

//Client

var https = require('https'),
    socketClient = require('socket.io-client'),
    fs = require('fs');

var options = {
    // IT'S EXPECTED THAT I DON'T PROVIED CA, HTTPS CONNECTION FAILS
    //ca: fs.readFileSync('cert/ca.crt'),
    agent: false
};

var socket = socketClient('https://localhost', options);

socket.on('connect', function() {
    console.log('Connected to hub');
    socket.emit('msg', function(resp){
        console.log('Response: ' + resp);
    });
});
和服务器:

// Server

var https = require('https'),
    socketIo = require('socket.io'),
    fs = require('fs');

var options = {
    // CERTIFICATE HAS BEEN SIGNED WITH CA
    cert: fs.readFileSync('cert/signed.crt'),
    key: fs.readFileSync('cert/signed.key'),
    rejectUnauthorized: false
};

var app = https.createServer(options, function(req, res) {
    res.end('Hi');
});

var io = socketIo(app);

io.on('connection', function(socket) {
    console.log('Connected !');

    socket.on('msg', function(cb) {
        console.log('Msg recved');
        cb('Client got it');
    });
});

app.listen(443, function() {
    console.log('Server Started ...');
});