Как я могу запустить сервер WebSocket поверх Google App Engine? Является ли это возможным? Возможно ли это?
Как запустить сервер WebSocket поверх GAE?
Ответ 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:
- http://googleappengine.blogspot.com/2010/05/app-engine-at-google-io-2010.html
- http://bitshaq.com/2010/09/01/sneak-peak-gae-channel-api/
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.
Ответ 5
Несколько человек получили веб-сайты, работающие с GAE, с помощью другого сервера... checkout http://code.google.com/p/typhoonae/wiki/WebSockets
Ответ 6
По состоянию на 9 января 2019 года он официально находится в бета-версии, но только для гибкого App Engine. Например, см. Документацию по Python. Согласно системе отслеживания ошибок, она будет работать на любом языке.
Ответ 7
Там также это: https://cloud.google.com/appengine/docs/go/sockets/ Это экспериментальный и очень низкий уровень.
Ответ 8
Google App Engine недавно запустил поддержку веб-сокетов в гибкой среде App Engine. Вы можете взглянуть на их сообщение в блоге.
Ответ 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.