Я попытался преобразовать пример запуска сокета IO в https следующим образом:
const fs = require('fs');
const app = require('https').createServer({
key: fs.readFileSync("privkey.pem"),
cert: fs.readFileSync("cert.pem"),
ca: fs.readFileSync("fullchain.pem"),
}, handler)
const io = require('socket.io')(app);
app.listen(443);
function handler (req, res) {
res.writeHead(200);
res.end();
}
io.on('connection', (socket) => {
socket.emit('news', { hello: 'world' });
socket.on('my other event', (data) => {
console.log(data);
});
});
Но выполнение следующего в моем браузере не работает:
const ws = new WebSocket("wss://example.com");
Но я получил следующая ошибка:
Firefox can’t establish a connection to the server at wss://example.com/.
Я попытался отладить это, выполнив команду curl:
curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Host: example.com" -H "Origin: https://example.com " https://example.com
, и в результате получилось:
curl: (52) Empty reply from server
Ни один из Достигнут код журнала консоли, и при выполнении всего этого в скрипте узла нет ошибок.
Почему я не могу подключиться к своему серверу веб-сокетов?