Можно ли использовать движок приложений Google в качестве сервера сокетов? - PullRequest
6 голосов
/ 13 февраля 2010

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

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

Спасибо.

Ответы [ 4 ]

7 голосов
/ 06 мая 2011

У Google App Engine теперь есть 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 является более надежным и настраиваемое решение, чем Channels API, и это позволяет общение с более широким кругом клиентов. В настоящее время поддерживает Android, iOS, приложения и веб-браузеры.

6 голосов
/ 13 февраля 2010

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

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

5 голосов
/ 20 июня 2011

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

3 голосов
/ 22 сентября 2012

Сокет теперь поддерживается начиная с 1.7.2 путем регистрации доверенного тестера

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...