Я настраиваю чат-сервер с socket.io.Я следовал их руководству, пока не пришло SSL.Я нашел некоторые объяснения здесь по стеку и учебные пособия в сети, поэтому я придумал следующий код.
Я заменил свой реальный домен на «my-domain.de»
var app = require('express')();
var fs = require('fs');
var https = require('https');
var io = require('socket.io')(https);
var mysql = require('mysql');
var options = {
key: fs.readFileSync('/etc/letsencrypt/live/my-domain.de/privkey.pem'),
cert: fs.readFileSync('/etc/letsencrypt/live/my-domain.de/cert.pem'),
ca: fs.readFileSync('/etc/letsencrypt/live/my-domain.de/chain.pem')
};
var serverPort = 8443;
var server = https.createServer(options, app);
server.listen(serverPort, function(){
console.log('listening on *:' + serverPort);
});
io.on('connection', function(socket){
console.log('a user connected');
});
Сервер работает, но Клиент не получает socket.io.js.Поэтому я запустил сервер с DEBUG = * -node index.js, чтобы увидеть, что происходит.При попытке подключения клиент отображает следующую ошибку:
express:application no routes defined on app +9s
finalhandler default 404 +0ms
Клиент выглядит следующим образом:
<script src="https://my-domain.de:8443/socket.io/socket.io.js"></script>
<script>
$(function () {
var socket = io('https://my-domain.de:8443/');
</script>