如何设置NodeJS的einaros / ws模块接受wss(安全的ws)连接?

我正在使用NodeJS的eniaros / ws模块在iOS应用程序和使用web套接字的NodeJS服务器之间进行实时通信。

该应用程序运行良好,但现在我必须使用wss保护服务器和iOS应用程序之间的通信。 我有我的Rapid SSL证书和密钥,我在服务器上使用以下代码:

var fs = require('fs'); var cfg = { ssl: true, port: 8081, ssl_key: 'key.key', ssl_cert: 'cert.crt' }; var httpServ = ( cfg.ssl ) ? require('https') : require('http'); var app = null; // dummy request processing var processRequest = function( req, res ) { res.writeHead(200); res.end("All glory to WebSockets!\n"); }; if ( cfg.ssl ) { app = httpServ.createServer({ // providing server with SSL key/cert key: fs.readFileSync( cfg.ssl_key ), cert: fs.readFileSync( cfg.ssl_cert ) }, processRequest ).listen( cfg.port ); } else { app = httpServ.createServer( processRequest ).listen( cfg.port ); } // passing or reference to web server so WS would knew port and SSL capabilities var WebSocketServer = require('ws').Server; var wss = new WebSocketServer( { server: app } ); 

该代码几乎是在GitHub上的ws / examples / ssl.js文件中给出的示例 ,但出于某种原因,NodeJS / ws服务器不接受任何wss套接字连接。

我正在使用正确的pathwss:// REMOTE_SERVER_IP:8081 /和我正在testing与http://www.websocket.org/echo.html 。

我已经search了很多,但似乎没有一个最新的教程如何使用eniaros / ws设置安全的wss。

3个月后,我重新审视了这个问题,并解决了这个问题。

代码是正确的。

我的错误是,我试图连接客户端使用服务器的IP地址(wss://xx.xx.xx.xx:8081),而不是使用证书和密钥颁发的子域(wss:// secure.subdoma.in:8081)。