Как настроить URL подключения сокета для производственного сервера? - PullRequest
2 голосов
/ 13 мая 2019

Я внедряю в производство мое приложение стека MEAN, у меня есть модуль сокетов для уведомлений в реальном времени. Однако при проверке ошибок в www.example.com я увидел эту ошибку POST http://www.example.com/socket.io/?EIO=3&transport=polling&t=MgkPNGk 404 (Not Found)

Мой код работает как задумано при разработке, когда я пытаюсь подключиться к localhost:4444, который является портом, который я использую для связи через сокет с моим сервером. Однако в производственном процессе я не могу соединить свой сервер и мой клиент. Я уже пробовал разные способы добиться этого с чем-то вроде

private socket = io(window.location.hostname + ':4444') 
private socket = io('http://www.example.com') 
private socket = io('http://www.example.com:4444') 

Но, похоже, ничего из этого не работает. Есть ли что-то, что мне не хватает? Я уверен, что это просто синтаксическая ошибка, но кто-нибудь может дать мне пример того, как этого добиться?

// Код клиента

import * as io from 'socket.io-client';

@Injectable({providedIn: 'root'})
export class SocketService
{
    private socket = io(window.location.hostname) 
    // private socket = io('http://localhost:4444') <- this works in development and I cant find a solution to do it in production,
    constructor(@Inject(DOCUMENT) private document,
                private http: HttpClient){
                    console.log(window.location.hostname)
                }
}

// Код сервера

var server   = http.createServer(app);
var io       = require('socket.io').listen(server);
var socketHelper = require('./helpers/socketHelper')(io)
server.listen(4444)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...