Qt / C ++离线存储IM消息

时间:2015-10-07 16:57:59

标签: qt datastore

我使用Qt为IM开发了一个客户端/服务器应用程序。到目前为止,消息在客户端发送和显示,但是当程序关闭时,由于缺少适当的存储,消息不再可用。

我想将消息保留在客户端设备上,并避免将所有内容存储在服务器上。我不想使用DB,因为它需要安装,我想保持一切都很简单。

因此,我只想将所有内容存储在加密文件中,但我无法想出适当的格式。 有没有人体验过如何保存来自不同客户的邮件或任何建议?

1 个答案:

答案 0 :(得分:2)

由于代码中的错误,瞬态硬件错误,停电等原因,您在软件意外终止时确实存在数据完整性问题。这是每个人使用"普通文件"通常会忽略,因为它是一个难以解决的问题,需要大量的测试和技术诀窍。

这就是你应该使用嵌入式数据库的原因。它将解决这个问题以及许多其他问题。 SQLite是您的应用程序的事实标准。您可以添加任何所需的加密,因为SQLite提供了允许您实现页面编写和读取的钩子。你在那里进行加密。

SQLite的一个不太受欢迎的方面,特别是它在开发过程中获得的测试量。大多数非公开的测试工具可能比已发布的SQLite代码(> 1M USD)更有价值。 SQLite用于航空航天应用,例如IIRC在DO-178B下被归类为DAL-B的代码。