2016-12-26 97 views
0

從我的研究中,MQTT代理只保存最新消息,但Facebook在其Messenger應用程序中使用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之類的技術。

相關問題