socketIO через SSL в браузере смартфонов - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть веб-сервер Apache с действующим сертификатом SSL.Он запускает мое веб-приложение на нем.Давайте назовем его Сервер A.

Затем у меня есть второй сервер, на котором запущен сервер Node-Js с действующим сертификатом SSL.Там также работает socket.IO.И этот мы называем Сервер B.

Клиент запрашивает веб-приложение на сервере A и отображает нужную страницу.Если страница настроена на клиенте, соединение с сервером B устанавливается через веб-сокеты.Если другой клиент должен что-то изменить на странице, он будет адаптирован для всех подключенных в настоящее время клиентов.

Веб-сокеты работают по желанию.Пока страница доступна через браузер компьютера.

Если я сейчас захожу на сайт со своим смартфоном (Iphone 7) через Safari или Chrome (WLAN), подключение к серверу веб-сокетов (сервер B) отсутствует.

Затем я настроил небольшой пример веб-сокета на http без шифрования.Там веб-сокеты работают в браузере смартфона.

Я надеюсь, что смогу объяснить мою проблему по понятным причинам.Я очень благодарен за подсказки, примеры или подобное.

// This script run on my Server
const fs = require('fs');
const server = require('https').createServer({
  key: fs.readFileSync('myserver.key', 'utf8'),
  cert: fs.readFileSync('myserver.cer', 'utf8'),
  passphrase: ''
});
let io = require('socket.io')(server);
server.listen(3003);

io.on('connection', function (socket) {
  console.log("User Connected connect " + socket.id);

  socket.on('disconnect', function () {
    console.log("User has close the browser " + socket.id);
  });

  socket.on('feedback', function (data) {
    io.sockets.emit('feedback', data);
  });
});

// On Clientsite
  socket = io.connect('wss://adressOfServer:3003', {
    // secure: true,
    transports: ['websocket'],
    upgrade: false,
    rejectUnauthorized: false
    //Here I have already tried many combinations 
  });
  
  socket.on('connect_error', function (error) {
  // alert(error);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...