Подтвердить что ты не робот

Как запустить сервер WebSocket поверх GAE?

Как я могу запустить сервер WebSocket поверх Google App Engine? Является ли это возможным? Возможно ли это?

4b9b3361

Ответ 1

Возможно ли это?

Нет.

Вы не можете сейчас, потому что GAE не разрешает общие входящие соединения сокетов. Каждый запрос также ограничен 30 секундами, но это можно легко обойти с автоматическим повторным подключением и отслеживанием сеанса.

Возможно ли это?

Возможно.

Google является одним из крупнейших (основных) промоутеров стандарта WebSockets. Я был бы удивлен, если они не будут поддерживать его в GAE в какой-то момент в будущем. Обратите внимание, что стандартный проект WebSockets по-прежнему находится в движении, поэтому Google может не согласиться добавить поддержку, прежде чем стандарт станет более твердым.

Вот ошибка для поддержки WebSockets в GAE: http://code.google.com/p/googleappengine/issues/detail?id=2535

Обратите внимание, что сотрудник google указывает это не на дорожную карту, но они знают, что это было бы полезно. Это как положительный ответ, как вы получаете от google о тех функциях, которые не были анонсированы. Я рекомендую добавить свой голос к этой ошибке в пользу поддержки WebSocket. Это не может повредить.

Кроме того, в зависимости от вашего приложения вы можете рассмотреть API канала, который, скорее всего, получит поддержку GAE:

EDIT (2015): теперь доступен API каналов (он был на некоторое время).

Ответ 2

Все эти ответы устарели.

API канала устарел. Google настоятельно рекомендует использовать Firebase.

Стоит также отметить, что Google выпустила гибкую среду.

Благодаря гибкой среде вы можете легко разрешить сокетные соединения или использовать Python 3.

Ответ 3

Официально сейчас поддерживается.

См. Https://cloud.google.com/appengine/docs/python/channel/.

РЕДАКТИРОВАТЬ: поддерживается API канала, а не WebSockets. Channel API построен на WebSockets, но не дает вам прямого доступа к WebSocket. Я полагаю, это достаточно хорошо для типичных веб-приложений.

Ответ 4

Вы не можете.

GAE ограничивает HTTP-запросы до 30 секунд, WebSockets ожидает, что соединение будет открыто в течение длительного времени.

Будет ли это возможно? Об этом знает только Google.

Ответ 6

По состоянию на 9 января 2019 года он официально находится в бета-версии, но только для гибкого App Engine. Например, см. Документацию по Python. Согласно системе отслеживания ошибок, она будет работать на любом языке.

Ответ 9

Июнь 2019

Поддержка веб-сокетов для GAE теперь поддерживается в SLA для Flex.

Hi everyone, I'm happy to announce that Websockets support 
for Flex is now Generally Available! We've made no changes since Beta 
but Websockets traffic is now subject to our SLA. 

We've also published documentation for this feature for all App Engine Flex languages.

См. Https://issuetracker.google.com/issues/35886348#comment285.