Socketio не будет подключаться с размещенного сайта к дроплету - PullRequest
0 голосов
/ 17 мая 2018

У меня есть цифровая океаническая капля, на которой запущен сервер nodeJS, работающий с pm2.Когда я запускаю приложение preact локально с io.connect, установленным на

io.connect('app.ardilabs.com:9080');

app.ardilabs.com - это место, где живет сервер nodeJS.

Локально запускаемое веб-приложение будет подключаться кудаленный сервер из DO, а затем обновит мое приложение данными, которые я отправляю с помощью Postman.

Когда я пытаюсь создать приложение и поместить его в одну и ту же каплю DO и обслуживать приложение с помощью nginx, приложение загрузиткогда вы переходите по URL, но он не подключается к серверу nodeJS.Когда я пытаюсь что-то POST получить, я получаю от сервера подтверждение, что он получил мои данные, но никогда не перенаправляется в приложение.

Почему это работает локально и с удаленным сервером, а не когда я размещаю приложениеи обслуживать его с помощью nginx?Я действительно в замешательстве.

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

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies

// routes will go here
io.on('connection', function(socket){
    //We need a connection but we don't need to do anything about it
});

// start the server
http.listen(9080, function() {
    console.log('listening on *:9080');
});

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

import io from 'socket.io-client';

const socket = io.connect('app.ardilabs.com:9080');

Несколько дополнительных замечаний:

  1. Я использую nginx в качестве веб-сервера
  2. На моем сайте есть сертификат Let's Encrypt

Если мне не хватает какой-либо необходимой информации, пожалуйста, сообщите мне!

1 Ответ

0 голосов
/ 31 мая 2018

Я выяснил, в чем проблема.

После того, как я поставил сертификат на свой сервер nginx, я не понял, что мне нужно настроить свой экспресс-сервер, чтобы он также использовал HTTPS.После того, как я включил HTTPS на экспресс-сервере, данные просто перешли в подключенное веб-приложение.

...