Покопавшись, я разобрался.Мой хост, example.com, указывает на балансировщик нагрузки с кучей правил прослушивания.Я сделал так, чтобы, если path = / mychatapp / *, то переслать экземпляр ec2, на котором запущено приложение.Это нормально, но socket.io делал вызовы с host = example.com, поэтому он нажимал example.com/socket.io/etcetcetc ... Я добавил другое правило прослушивателя балансировки нагрузки, если путь = / socket.io / *,затем также отправьте его в экземпляр ec2.Это работает.
Это решение довольно хакерское, так как оно означает, что я не смог запустить второе приложение socket.io.Лучшим ответом было бы как-то изменить вызов по умолчанию с "/socket.io" на "/mychatapp/socket.io", чтобы мне не требовалось другое правило прослушивателя.Я попробовал несколько способов сделать это, но это не сработало.Поскольку это небольшой проект, я буду придерживаться этого решения.