Интерфейс Https с помощью Socket.io не подключается к внутреннему серверу NodeJS - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть сервер Debian 9, сервер A, который обслуживает страницу https (сборка с ReactJS) через Nginx, сертификат был получен с помощью Certbot.

На сервере A у меня также есть серверная частьфайл NodeJS, который я использую для обслуживания входящих соединений socket.io через определенный порт и запускаю его с помощью команды «node file.js».

Внешний интерфейс работал нормально, когда я использовалhttp, но как только я переключился на https, клиентский интерфейс больше не мог подключаться к серверному серверу с сообщениями об ошибках (в Firefox), такими как:

Блокированная загрузка смешанного активного контента.

Это соответствующий код на стороне клиента:

import * as io from "socket.io-client";
const socket = io.connect("http://publicip.of.my.server:7419");

Это соответствующий код на стороне сервера:

const server = require('http').createServer()
const io = require('socket.io')(server)

...

server.listen(7419, function (err) {
    if (err) throw err
        console.log('listening on port 3000')
})

Я пытался добавить этона серверный код:

io.set ('origins', ': ');

С этим добавлением я заметилчто соединение socket.io работает, ЕСЛИ я подключаюсь к веб-сайту, используя его публичный IP-адрес (http://publicip.of.my.server),, но не еслиВеб-сайт (который затем перенаправляет на https).

Мои вопросы:

  • Какие изменения я должен внести в свой код для переключения на https?

  • Мой интерфейс и сервер находятся на одном сервере A, почему это происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...