如何将聊天消息存储到离子存储中?

时间:2018-09-26 09:19:03

标签: ionic-framework socket.io local-storage ionic-storage

我使用ionic和socket.io-client创建了一个聊天应用程序。

在我的应用中,当我选择一个用户开始聊天时,我的应用会从服务器加载最近的聊天数据,然后将其显示给用户。如果没有网络连接,则用户将看不到以前的聊天消息。因此,我想将聊天消息存储到离子本地存储中,或者有其他更好的存储方法。

请为我提供一种更好的方式来加载两个用户之间的近期聊天记录,而不是每次选择用户时都从服务器获取。

1 个答案:

答案 0 :(得分:0)

您已经说过,离子存储是必经之路:https://ionicframework.com/docs/storage/

对于每次对话,我都会:

1. Send message to server 
2. storage.get(conversationID) ....
3. add message and last message send timestamp to conversation
4. storage.set(conversationID) ....

加载邮件时

1. storage.get(conversationID) ....
2. Check if newer messages are available
3. If yes -> fetch 
3.1. add messages and last message send timestamp to conversation
4. storage.set(conversationID) ....

始终仅显示本地值,并在接收任何内容时更新它们。您还可以在发送消息时记住对象引用,并在发生任何网络异常时将其标记为未发送。