如何在nest.js中为socket.io创建SSL连接?

时间:2018-02-20 12:05:41

标签: node.js socket.io ssl-certificate

|问候|

我们正在使用nest.js和socket.io开发应用程序,我想知道是否可以为此环境创建SSL连接。

以下是回购的链接:https://github.com/nokia/skilltree (最近的尝试已经在大卫分支中进行了)

我试过这个,但socket.io仍然不使用SSL连接: https://blog.cloudboost.io/everything-about-creating-an-https-server-using-node-js-2fc5c48a8d4e 他们建议:

var options = {
  key: key,
  cert: cert,
  ca: ca
};
var https = require('https');
https.createServer(options, app).listen(443);

感谢您提前提供任何帮助

2 个答案:

答案 0 :(得分:0)

用完全相同的问题花了一整天,这是我能找到的最佳解决方案:

const httpsOptions = {
    key: key,
    cert: cert,
    ca: ca
};
const expressInstance: express.Express = express();
const app: NestApplication = await NestFactory.create(
    MainModule, 
    expressInstance, 
    { httpsOptions }
);
await app.listen(Environment.PORT);

使用这种方法,安全的websockets对我来说效果很好

答案 1 :(得分:0)

嵌套将选项对象作为第二个参数,该对象还包含https选项,例如:

const app = await NestFactory.create(AppModule, { 
    httpsOptions: {
      key: 'key',
      ca: 'ca',
      cert: 'cert',
    },
  });

await app.listen(3000);

因此,无需自己创建Express实例。 尚未测试,但实际上应该可以工作。 :) 另请参阅:HttpOptions Interface NestJs