Я внедряю в производство мое приложение стека 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)