2016-12-26 7 views
0

Из моих исследований Брокеры MQTT сохраняют только последнее сообщение, но facebook использует MQTT в своем приложении для обмена сообщениями. Так они используют специальный брокер для сохранения сообщений?Является ли MQTT способным сохранять сообщения в базе данных

https://www.facebook.com/notes/facebook-engineering/building-facebook-messenger/10150259350998920

Моего вопрос возможно ли MQTT брокеры сохранить все сообщения, отправленные таким образом, что я могу создать свой собственный чат сообщений мобильного приложения? Я знаю, что платные сервисы, такие как HiveMQ, предлагают эту функциональность, но я ищу бесплатную альтернативу.

ответ

3

MQTT - это протокол для отправки и получения сообщений между клиентом и сервером. То, что либо делает сообщения, выходящие за рамки основных требований протокола, зависит от реализации.

Вы можете использовать приложение, подписанное на тему, чтобы хранить все сообщения в базе данных - это не должно быть функцией компонента брокера.

+0

Значит ли это, что я могу использовать другое программное обеспечение для подписки на сообщения и самостоятельно сохранять сообщения в базе данных? Есть ли примеры такого программного обеспечения? –

+0

Есть много примеров, некоторые даже упоминаются в похожих вопросах здесь, в Stackoverflow – hardillb

1

Обычный брокер MQTT работает пассивным образом. Он получает сообщение от издателей и передает его любому доступному абоненту. Я думаю, что Facebook использует другой процесс, который получает сообщения, а затем снова отправляет его клиентам. Затем клиенты могут отправить другое сообщение MQTT, когда оно получает сообщение.

Однако MQTT имеет некоторый механизм QoS. Его можно использовать, если есть постоянное соединение с клиентом. Facebook также может использовать это.

Если вам нужно постоянство сообщения из коробки, это невозможно с MQTT. Вы можете использовать такую ​​технологию, как Apache Kafka.