节点.js Socket.io 聊天服务器 SSL

Node.js Socket.io chat server SSL

本文关键字:服务器 SSL 聊天 io js Socket 节点      更新时间:2023-09-26

我正在尝试让我的聊天应用程序在 node.js/socket.io 中运行以在 SSL (https) 上运行,我现在在启动服务器时没有收到错误,但我无法再连接了。

我用谷歌搜索并尝试了很多例子,但我无法让它工作。

这是我的旧代码(这在 http 中有效)

    var express = require('express')
  , app = express()
  , http = require('http')
  , server = http.createServer(app)
  , io = require('socket.io').listen(server);
server.listen(8080);
app.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.html');
});

这是我更改的代码:

var https = require('https');
var fs = require('fs');
var options = {
  key: fs.readFileSync('cert.key'),
  cert: fs.readFileSync('cert.crt')
};
var express = require('express')
  , app = express();
var server = https.createServer(options);
var io = require('socket.io').listen(server);
server.listen(8080);
app.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.html');
});

这就是我在节点上创建https服务器的方式。一旦它对我来说工作正常,就试试吧.

var port = "80";
var express = require('express')
, app = express()
, http = require('http')
, server = http.createServer(app);
server.listen(port);
var fs = require('fs');
var net = require('net');
var tls = require('tls');
var sslOptions = {
        key: fs.readFileSync('public/server.key'),
        cert: fs.readFileSync('public/server.crt')
};
tls.createServer(sslOptions, function (cleartextStream) {
    var cleartextRequest = net.connect({
        port: port, //your port
        host: serverStr // your server address
    }, function () {
        cleartextStream.pipe(cleartextRequest);
        cleartextRequest.pipe(cleartextStream);
    });
}).listen(443);