У меня есть socket.io, работающий локально.http://localhost:3000 - это URL для внутреннего интерфейса Node.js и http://localhost:4200 URL для внешнего интерфейса Angular.
http://localhost:3000
http://localhost:4200
Но он не работает при развертывании приложения.
Структура папки:
имя-родительской папки
-backend folder -frontend files
Все файлы Angular, расположенные непосредственно в родительской папке.
URL-адреса:
http://mydomainnameexample.com/parent-folder-name/backend http://mydomainnameexample.com/parent-folder-name/ (внешний интерфейс)
http://mydomainnameexample.com/parent-folder-name/backend
http://mydomainnameexample.com/parent-folder-name/
Код:
Клиент: this.socket = io('http://mydomainnameexample.com/parent-folder-name/');
this.socket = io('http://mydomainnameexample.com/parent-folder-name/');
Сторона сервера:
const http = require('http').Server(app); const io = require('socket.io')(http); io.sockets.on('connection', function(socket) { console.log('A client is connected!'); socket.on('index', () => { console.log('socketData: '); testController.index(socket); }); });
У меня есть 404 вконсоль для этого URL: http://mydomainnameexample.com/parent-folder-name/backend/?EIO=3&transport=polling&t=MQnDIEb
404
http://mydomainnameexample.com/parent-folder-name/backend/?EIO=3&transport=polling&t=MQnDIEb
на стороне сервера (Node.js) Я добавил путь:
const io = require('socket.io')(http, {path: 'parent-folder-name/backend/socket.io'})`
И на стороне клиента:
this.socket = io('http://mydomainnameexample.com', { path: 'parent-folder-name/backend/socket.io' });