Socket.io-client: Подключение клиента Socket.io через AWS Api Gateway

Созданный на 12 июн. 2020  ·  4Комментарии  ·  Источник: socketio/socket.io-client

Привет. Я пытаюсь создать такое соединение: socket.io-client -> AWS Gateway API.
При попытке подключиться от клиента socket.io к API AWS Gateway соединение не может быть установлено.
Он застревает со статусом «101 протокол переключения» на несколько секунд, затем генерирует событие «отключено» и пытается восстановить соединение, и процесс повторяется бесконечно.
Однако этого не происходит с собственными WebSockets или библиотекой ws, все подключается так, как должно.
Я думаю, что проблема как-то связана с тем, как стороны клиента и сервера socket.io взаимодействуют друг с другом, обмениваясь определенными сообщениями, которые могут не генерироваться на стороне AWS.
Итак, мой вопрос: возможно ли установить такое соединение без использования прокси:
socket.io-client -> AWS Api Gateway -> socket.io(node.js) ,
или всегда должно быть Socket.io-client -> socket.io(node.js) ?

Для настройки шлюза использовалась документация Amazon AWS: https://aws.amazon.com/blogs/compute/announcing-websocket-apis-in-amazon-api-gateway/
Он использует стандартные маршруты $ connect, $ disconnect и $ default, но вместо lambda используется его серверная часть nodejs. Но проблема только на стороне клиента.

question

Самый полезный комментарий

@Sairyss есть ли обновления по этому

@JerryLeeCS В итоге я использовал собственные WebSockets на стороне клиента и маршруты $ connect, $ disconnect и $ default на стороне сервера. Я не нашел решения, чтобы заставить его работать с Socket.io. Похоже, что соединения Socket.io из внешнего интерфейса не поддерживаются AWS Gateway API, он просто отказывается подключаться.

Все 4 Комментарий

@Sairyss есть ли обновления по этому

@Sairyss есть ли обновления по этому

@JerryLeeCS В итоге я использовал собственные WebSockets на стороне клиента и маршруты $ connect, $ disconnect и $ default на стороне сервера. Я не нашел решения, чтобы заставить его работать с Socket.io. Похоже, что соединения Socket.io из внешнего интерфейса не поддерживаются AWS Gateway API, он просто отказывается подключаться.

Кажется, это возможно: https://stackoverflow.com/a/56364967

@darrachequesne Если я прочитал эту ссылку / правильно опубликуйте, он использует сервер EC2, на котором работает сервер SocketIO? Немного непонятно. Я в той же лодке - ws работает нормально, но не сокет io - соединение вообще отсутствует. Использование сервера websocket по умолчанию, предоставляемого шлюзом aws api (без сервера).

Была ли эта страница полезной?
0 / 5 - 0 рейтинги