嘿我正在使用ejabberd 在erlang上开发iOS上的私人聊天应用。但我不太清楚如何开始。我在Macbook Pro上安装了erlang和ejabberd,我将在Heroku上部署所有内容。 以下是一些要求:
我想尽量减少使用erlang,因为在python,php,java中编写后端会更方便。 (但这不是一个大问题。我需要教程)。
我希望在收件人离线的情况下存储邮件,我不希望遗漏任何邮件。另外,我想要一个好的身份验证系统。
请给我一些建议,我需要一些教程,以便我能做我想做的事。
答案 0 :(得分:2)
我可以比第二个更好地回答你的第一个问题/要求。我参与了一个游戏 - 实际上是一个真实的幻想草案应用程序 - 它是使用ejabberd构建的。我认为最小化erlang的关键是将ejabberd完全用作传输层。不要扩展它,而是编写一个特殊的管理客户端来代理" room"中的交互。我们称之为机器人。在给定的草案中,有一个机器人,但有很多现场参与者。然后,定义机器人和客户端理解的消息协议是一件简单的事情。一些消息是游戏动作,一些简单的聊天消息。机器人管理游戏规则和数据持久性,写入数据库。
您接下来的两个问题(可用性和身份验证)非常广泛。 ejabberd确实内置了一些安全功能,但我不了解您的需求。我通过某种故障转移来解决可用性问题。或者,您可以在聊天服务器前使用排队服务,例如Amazon SNS,但这会增加成本和复杂性。
答案 1 :(得分:1)
如果您的负载适中,您可以自定义ejabberd外部身份验证机制。
ejabberd文档中提供了协议和示例脚本: https://www.ejabberd.im/files/doc/dev.html#htoc9
答案 2 :(得分:0)
我认为您应该在IOS应用程序开发中考虑xmpp框架。您只需将ejabberd模块配置为所需的选项,然后使用此库与它们进行交互。