设置加密的Nodejs WebSocket-Server时出现问题

时间:2014-08-30 11:09:20

标签: node.js ssl express https websocket

我正在尝试启动并运行nodejs wss-server。为此,我使用的是Express4 Framework和eniaros / ws模块。

但遗憾的是我无法启动并运行WSS-Server。普通的WS-Server工作正常,但每次我尝试连接到我的WSS时,客户端都会连接并再次直接断开连接。

我的证书是自签名的。

我的代码如下所示。如果有人能帮助我,那真是太棒了!


var express = require('express');
var router = express.Router();
var app = express();

var http = require('http');
var https = require('https');
var WebSocket = require('ws').Server;
var path = require('path');
var fs = require('fs');

// Routes
app.use('/', require('./routes/index'));    

// Load config files
var db_conf = require('./config/vops_db_config.json');
var server_conf = require('./config/vops_server_config.json');

// TLS-Files
var cert_basepath = './config/certs/';
var tls_key = fs.readFileSync(cert_basepath + server_conf.tls.key_path);
var tls_cert = fs.readFileSync(cert_basepath + server_conf.tls.cert_path);
var https_options = {
    ssl: true,
    port: 3030,
    key : tls_key,
    cert: tls_cert
};

// Start all HTTP-Servers
var httpServer  = http.createServer(app);
var httpsServer = https.createServer(https_options, app);

httpServer.listen(3000, function () {
    console.log('HTTP-Server now listening on port ' + 3000);
});

httpsServer.listen(3030, function(){
    console.log('HTTPS-Server now listening on port '+ 3030);
});       

// Start WebSocket-Server
var wss = new WebSocket( { server: httpServer });

wss.on('connection', function(ws) {
    ws.on('message', function(message) {
        console.log('received: %s', message);
    });
    ws.send('something');
});

0 个答案:

没有答案