В настоящее время у меня есть сервер Node.Js, который при подключении к браузеру перенаправляет их на веб-страницу, позволяющую общаться с помощью Socket.io.
У меня также есть отдельно запущенный скрипт python, который был возможность подключения к серверу до тех пор, пока мне не пришлось изменить веб-страницу для подключения к HTTPS, после чего что-то о том, как сервер Node.JS изменил способ запуска прослушивания, означало, что в сценарии python соединение было отклонено сервер.
В настоящее время, чтобы разрешить веб-странице использовать https, подключение выполняется:
var htmlPath = path.join(__dirname, 'client');
app.use(express.static(htmlPath);
var https = require('https');
var options = {
key: fs.readFileSynce('./server-key.pem'),
cert: fs.readFileSynce('./sever-cert.pem'),
}
var server = https.createServer(options, app).listen(9000, function(){
console.log('listening on port 9000');
});
var io = require('socket.io)(server, {});
io.socket.on('connection', function(socket){
...
}
Где, как и в предыдущей версии, разрешено подключение Python и подключение Http, но не HTTPS было сделано так:
var htmlPath = path.join(__dirname, 'client');
app.use(express.static(htmlPath));
var server = app.listen(9000, function() {
console.log('listening!');
});
var io = require('socket.io')(server,{});
io.sockets.on('connection', function(socket){
....
}
Сценарий python просто подключается с использованием:
socket.connect('HTTPS://SERVER_IP_ADDRESS')
Я знаю, что это вероятно, потому что он больше не слушает, используя app.listen больше. Но как я могу заставить это работать, все еще используя https для подключения к веб-странице?
Извинения, если это очень простой вопрос. Я потратил много времени на изучение Node.JS и Socket.IO в последнее время, но так и не понял, как на самом деле он слушает различные типы соединений.
Спасибо за любую помощь!