使用节点应用程序的用户之间的消息传递

Messaging between users with node application

我想在我的 iOS 和 Android 应用程序中实现应用程序内消息传递,但我不确定应该如何创建后端功能。在我的后端是 运行 Node.js 并且用户等存储在 MongoDB 之前。

我想我可以很容易地通过将消息保存在数据库中并使用新消息向收件人发送推送并在应用程序中显示它来实现消息传递,但我不希望消息被在服务器上可读。因此,有必要在数据库中对它们进行加密并在客户端对其进行解密。

有人对如何实施加密或使用节点框架有任何建议吗?我看过 socket.io,但这似乎是为实时聊天应用程序创建的,这并不是我要找的。我也看过 RabbitMQ,但我不太明白它是否符合我的要求。

非常感谢!

你说的是端到端加密。如果加密密钥在应用程序内部进行硬编码,那么您的加密很容易被破解。为了实现类似的功能,您需要一个用于 iOS 的库和一个用于 Android 的库。

对于 iOS,我建议使用 OpenSSL 并实施加密方案(Public 密钥加密)。对于 Android,您可以使用 Spongy Castle 库。

由于 iOS 推送通知大小的限制,通过 PUSH 发送数据不是一个好主意。 您还(可能)需要为用户登录实施身份验证机制。 你可以在这里走两条路..

  1. 让服务器生成一个密钥供客户端解密

  2. 单独的密钥,(数据库上的散列密码,客户端上的 public/privatekeys)

我没用过socket.io/rabbitmq,所以很遗憾我不能帮你。看来您是新手,我会好好看看并阅读 public 密钥密码学。 http://en.wikipedia.org/wiki/Public-key_cryptography#Examples