您错过的一个选项是基于SIP的东西。SIP和XMPP一直被认为有些重叠,尽管XMPP似乎在即时消息的特定情况下胜出了。我对SIP上的IM没有任何了解。
我会使用XMPP,因为:
- 服务器实现已经成熟,这意味着如果需要,可以在不影响其他基础结构的情况下更改服务器。
- 有许多现成的客户,包括适合您的银行客户(AJAX)和适合您的银行经理(桌面)。
- IM超过XMPP是常见的。SIP最常见的情况是VoIP。如果您尝试通过SIP获得IM的帮助,大多数SIP专家对语音的了解将远远超过IM。如果您试图通过XMPP获得IM的帮助,这正是XMPP专家一直在处理的问题。这同样适用于文档: SIP文档将倾向于围绕VoIP进行调整。
- 在我看来,使用不支持XMPP或SIP的解决方案在开发方面是一个死胡同。就连谷歌和Facebook现在也在使用XMPP。XMPP现在似乎是未来的证明选项。
- IRC是一种多对多的聊天机制。有DCC,但主要是建立一对一的沟通渠道.我认为,如果您确实实现了一些基于IRC的功能,那么您将花费大量的时间在不需要它的地方提取多到多的函数,并且不会有太多的其他功能,因为您还必须用AJAX/XmlHttpRequest/WebSocket代替DCC实现。
- 如果您最终定制的东西越来越多,XMPP是精心设计,详细说明和一个良好的基础开始。您可以逐步替换web客户端、桌面客户端和服务器,而不会中断或头痛。
一些可能的注意事项:
- XMPP服务器希望与其他服务器对话,因为该协议是为联邦设计的。你必须确保这一切不会发生。XMPP通常用于客户机->服务器的5222和服务器<->服务器的5269,但也使用SRV。
- 无论你选择哪一个客户,也是如此。您可能需要削减它,以确保用户不能使用更通用的通用功能,例如从名册中添加和删除用户(更糟的是,外来者)。GTalk试图迷惑你的客户,也许还会屈从于你的客户)。
我认为您在XMPP中可能遇到的两个最大问题是:
- 管理XMPP服务器上的用户和名册,因为它们大多是为一般用途而设计的,而不是沙箱环境。服务器将倾向于期望并允许客户端注册、设置密码等,而您可能希望既防止这种情况发生,又自己管理一切。
- 删除所有可能导致问题的额外功能。你大概不想让你的客户互相交谈,转移文件等等。
我已经建立和维护了一个私人多站点,多服务器,私人XMPP安装跨越多个连接的客户,早在2002年左右。我要做的主要事情是:
- 如上文所述,减少服务器实现。我使用jabberd 1.x,它使用XML文件进行配置。我通过提供已经预先填充的名册XML文件将其与我们的用户数据库集成在一起。理论上,用户可以扰乱他们的名册,但他们会被服务器覆盖。在实践中,这种情况并没有发生,因为客户端软件阻止了它。您可能需要更进一步,但我相信现在有足够灵活的服务器来允许它。
- 获取一个客户端实现,该实现可以自动预先配置,并且不会造成混乱。我选择并修补了一个特定的客户端(Psi)以添加“锁定”模式,该模式可用于删除所有与配置相关的UI元素,包括名册管理选项。相反,配置由服务器自动完成。用户将有一些简单的东西,他们不需要配置,而且不会出错。像这样的东西可能对你的银行经理有用-它将节省很多支持。