Можно ли использовать движок приложений Google в качестве сервера сокетов?

У моего веб-хостинга есть правила против серверов сокетов, поэтому я изучал GAE.

Кто-нибудь знает о сервере сокетов, который может успешно работать в GAE? Я использую его для флеш-памяти, так что все, например, smartfox, было бы потрясающе, если бы это было возможно.

Спасибо.


person N S    schedule 13.02.2010    source источник


Ответы (4)


У Google App Engine теперь есть Channel API

Channel API создает постоянное соединение между вашим приложением и серверами Google, позволяя вашему приложению отправлять сообщения клиентам JavaScript в реальном времени без использования опроса. Это полезно для приложений, предназначенных для немедленного информирования пользователей о новой информации. Некоторые примеры использования включают приложения для совместной работы, многопользовательские игры или чаты. В общем, использование Channel API - лучший выбор, чем опрос в ситуациях, когда обновления нельзя предсказать или запрограммировать, например, при передаче информации между пользователями-людьми или из событий, которые не генерируются систематически. - взято по ссылке ниже

http://code.google.com/appengine/docs/python/channel/overview.html

Обновление: 27 октября 2016 г.

Каналы API устарели и будут отключены до 31 октября 2017 г.

https://cloud.google.com/appengine/docs/deprecations/channel

Альтернативные продукты

Вы можете использовать базу данных Firebase Realtime для достижения превосходной функциональности в реальном времени в своем приложении. Firebase - более надежное и настраиваемое решение, чем API каналов, и оно позволяет взаимодействовать с более широким кругом клиентов. В настоящее время он поддерживает Android, iOS и приложения, а также приложения для веб-браузера.

person alvinsj    schedule 06.05.2011

Сокеты не поддерживаются в GAE. Больше поддерживаемой / не поддерживаемой информации здесь:

http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine?pli=1

person Cody Caughlan    schedule 13.02.2010
comment
Ссылка мертва - это все еще так? - person ScottR; 09.04.2012
comment
Вот новая ссылка code.google.com/p/googleappengine/wiki/WillItPlayInJava - person Kyle Finley; 13.05.2012

Я могу подтвердить, что у меня есть многопользовательская игра с использованием Canvas / GWT / App Engine и работающая с использованием api каналов. Я использую кэш памяти для хранения текущего состояния и получения отчетов от клиентов на сервер с их текущим состоянием, затем сервер будет транслировать новое состояние всем клиентам, если прошло определенное время (чтобы он не отправлялся часто, если вы иметь большое количество пользователей). Этот подход, похоже, требует большой мощности процессора, однако в настоящее время мой подход состоит в том, чтобы иметь минимум логики на сервере, что означает, что есть много возможностей для взлома и т. Д. Многопользовательское взаимодействие требует некоторой работы, но у меня есть игроки перемещаются с задержкой примерно в полсекунды на других клиентах, это также потому, что я не показываю последнюю известную позицию напрямую, я интерполирую между старой позицией и последней известной позицией. Если у кого-то есть лучший подход к тому, как это сделать на движке приложений Google вместо использования кеша памяти, дайте мне знать.

person djdolber    schedule 19.06.2011

Socket теперь поддерживается с версии 1.7.2 после регистрации доверенного тестировщика.

http://googleappengine.blogspot.com/2012/09/app-engine-172-released.html

person Cuong Thai    schedule 22.09.2012
comment
Это исходящие сокеты, а не входящие. - person peritus; 20.05.2013