Корс заблокирован с помощью решения Nodejs / socketio - PullRequest
0 голосов
/ 01 ноября 2019

В моем приложении я использую socketio и nodejs. Я пытаюсь реализовать простое реализованное простое решение, которое передает данные клиенту и обновляет некоторые его части на стороне сервера.

Все идет хорошо, пока не переместится из IDE (phpstorm) в среду докера, когда веб-приложение не может подключиться к стороне сервера из-за блокировки CORS и невозможности установить соединение между webapp и backend.

  • Webapp загружается в браузер без проблем, если он работает в Docker.
  • Бэкэнд-сервер также работает без проблем с контейнером Docker и прослушивает входящий запрос с заданным портом и адресом (localhost).

Чего не хватает? Я пробовал Google несколько часов, и я должен сказать, что не знаю, чего еще не хватает в реализации на стороне сервера.

Серверная часть:

const io = require('socket.io');
.
.
const server = io.listen(prefs.configs.server.serverPort,  {origins: "*:*", transport :[ 'websocket', 'polling', 'xhr']});
server.set('origins', '*:*');

// event fired every time a new client connects:
server.on("connection", (socket) => {...});

socket.io версия 2.3.0 какой самый новый

Сторона внешнего интерфейса (реагирует на приложение):

.
.

let mapMarkerLayers = {};

const api_url = process.env.REACT_APP_BACKEND_API_URL;
let socket = null;
//
if (api_url !== undefined) {
    socket = socketIOClient(api_url);
} else  {
    console.log ("Backend url not defined, api calls not in use.");
}

.
.

        if (socket) {

            socket.on('markers:all', (cb) => {
                this.addMarkers(cb);
            });

            // get all markers from backend to display on the map.
            socket.emit("markers:fetch_all");

        }

Я пробовал с другим видом в поле происхождения, но не повезло.

Результаты дляAPI-вызовы - это следующий вид в FF.

Запрос перекрестного источника заблокирован: Политика одинакового происхождения запрещает чтение> удаленного ресурса в http://localhost:5010/socket.io/?EIO=3&>transport=polling&t=MuddFxK. (Причина: запрос CORS не выполненуспеха).

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