GAE: MQTT брокер
Мне было интересно, можно ли запустить брокера MQTT на платформе Google App Engine? Не удалось найти информацию об этом (или, возможно, я использовал неправильные ключевые слова).
У меня GAE работает на Java, поэтому я хотел бы пойти в направлении запуска брокера MQTT на GAE с использованием бэкэнда.
РЕДАКТИРОВАТЬ: сделал некоторые дальнейшие исследования, и кажется, что Moquette работает на Java. У кого-нибудь есть опыт запуска Moquette на GAE?
РЕДАКТИРОВАТЬ 2: Хорошо, кажется, примеры Moquette работают с использованием контейнера OSGi, который недоступен в GAE. Ищем скрипт для запуска этого сервера на GAE.
3 ответа
MQTT - это протокол поверх TCP. Чтобы запустить сервер MQTT, нужно уметь открывать сокет прослушивания. Они все еще не поддерживаются в обычных экземплярах AppEngine.
Примечание: бэкэнды GAE были заменены: теперь у вас есть только автоматически масштабируемые (aka frontend) экземпляры и вручную масштабируемые (aka backend) экземпляры.
Вернемся к вашей проблеме: управляемые виртуальные машины имеют большинство преимуществ GAE (доступ к службам), но имеют полную JVM, которая позволяет прослушивать сокеты.
@ Питер Кнего определенно прав, и все, что я хотел бы добавить к его ответу, это то, что
Если вам удастся настроить приложение на использование настраиваемой среды выполнения на управляемых Vms Appengine и Compute Engine,
тогда вы сможете запустить свой MQTT-брокер безупречно звучащим и здоровым.
Пока вы определяете брандмауэр, чтобы разрешить tcp-соединение с портом, который прослушивает ваш брокер.
По умолчанию порты заблокированы по соображениям безопасности.
Альтернативой Moquette также может быть брокер HiveMQ, он также работает на Java и может быть легко установлен. Вся документация доступна здесь. Мы еще не тестировали его на GAE, но если у вас есть какие-либо проблемы с его запуском, вы можете обратиться на форум поддержки.
Обновление: если Питер Кнего прав, то HiveMQ или любой другой брокер MQTT не будет работать с GAE.
Полное раскрытие: я работаю в компании, которая разрабатывает HiveMQ.
Ура,
Кристиан