node.js、socket.io 和 SSL

Posted

技术标签:

【中文标题】node.js、socket.io 和 SSL【英文标题】:node.js, socket.io and SSL 【发布时间】:2013-05-27 21:01:09 【问题描述】:

我有一个运行启用 SSL 的 Apache 服务器。现在我做了一个小聊天,它使用 node.js 和 socket.io 来传输数据。在非安全连接上使用端口 8080 工作得很好,但是当我在 SSL 安全域上尝试它时它不起作用。我不明白整个设置应该如何工作,因为 SSL 只通过端口 443 工作。Apache 已经在端口 443 上列出。socket.io 应该在哪个端口上监听?

【问题讨论】:

***.com/questions/6599470/node-js-socket-io-with-ssl的可能重复 @Fallexe 不是真的。他正在使用没有 Apache 的 node.js。就我而言,Apache 已经在使用端口 443 我从来没有尝试在同一个端口上运行 Apache 和 socket,但这里有类似的 w/o ssl ***.com/questions/11172351/… 【参考方案1】:

我必须像这样设置 SSL 证书

var fs = require('fs');

var options = 
  key: fs.readFileSync('/etc/ssl/ebscerts/wildcard.my_example.com.no_pass.key'),
  cert: fs.readFileSync('/etc/ssl/ebscerts/wildcard.my_example.com.crt'),
  ca: fs.readFileSync('/etc/ssl/ebscerts/bundle.crt')
;

var app = require('https').createServer(options),
    io = require('socket.io').listen(app);

app.listen(8080);

我在github找到了解决方案

【讨论】:

以上是关于node.js、socket.io 和 SSL的主要内容,如果未能解决你的问题,请参考以下文章

Node.js、多线程和 Socket.io

Phaser.js 中的 Node.js 和 Socket.io 未连接 socket.io/?EIO=3&transport=polling

node.js + socket.io:拍卖网站开发

如何将 Asterisk ARI 与 socket.io 和 Node.js 一起使用

Node.js 使用 socket.io 进行重构

Node.js + Socket.io 内存泄漏和最大监听器