您将使用哪种即时消息系统,通过与客户服务代表进行安全的1:1聊天来扩展网站?

时间:2010-10-18 15:43:05

标签: instant-messaging

我需要为网站实施聊天系统,以便客户可以通过网站在线与他们的客户服务代表进行一对一的交谈。

所以我需要的是一个系统:

  • 在浏览器中显示代表列表,状态指示他们是否在线
  • 允许用户与代表聊天;可能会向用户显示一个可以聊天的新屏幕或弹出窗口。
  • 网站是HTTP,但聊天需要是HTTPS,因此我想在退出屏幕上有一个叠加层来进行聊天,例如像Facebook这样做,并不是真的合情合理
  • 经理需要一些他们可以登录的应用程序或网站,并与他们的客户聊天。
  • 显然,如果可能的话,我更愿意使用开源解决方案。
  • 我们在大多数情况下使用Java,但这并不重要,如果有必要,我不介意在其他技术中安装系统。

到目前为止我所考虑的是:

  • 使用Jabber / XMPP,使用AJAX客户端通过HTTPS进行通信;那里有很多,我不确定哪个最好,也许JWChatscreenshot)。这样做的好处是银行经理可以使用桌面客户​​端(例如Windows客户端),如果他们愿意的话,如果他们整天都在使用它,那么可能会有更好的用户界面。
  • “irc”也是一个开放协议,毫无疑问有许多客户端实现可用;但我认为没有办法遵守使用HTTPS(或者某些其他安全协议)的安全要求。
  • 我做了很多GWT编程,在“GWT Applications”一书中有一个简单的即时消息客户端实现(demo)。也许我可以用类似的风格来推销自己的风格?

我的问题:

  • 我没有考虑哪些方法?
  • 你会采取什么方法?例如您使用过哪种适用于您的软件?
  • 如果你是使用Jabber / XMPP(没有进一步的信息,我有点倾向于那个解决方案..)你会考虑哪个AJAX客户端?

2 个答案:

答案 0 :(得分:2)

您错过的一个选项是基于SIP的选项。 SIP和XMPP一直被认为有些重叠,尽管XMPP似乎已经赢得了即时消息的特定情况。我对SIP的IM没有任何了解。

我会选择XMPP,因为:

  • 服务器实施已经成熟,这意味着如果需要,您可以稍后更改服务器,而不会影响基础架构的其余部分。

  • 有许多现成的客户,包括适合您银行客户的客户(AJAX)以及适合您的银行经理(桌面)的客户。

  • IM over XMPP很常见。 SIP最常见的情况是VoIP。如果您尝试通过SIP获取IM的帮助,大多数SIP专家往往会比IM更了解语音。如果您尝试通过XMPP获取IM的帮助,那正是XMPP专家始终处理的问题。这同样适用于文档:SIP文档将倾向于围绕VoIP。

  • 在我看来,使用不支持XMPP或SIP的解决方案在开发方面是一个死胡同。甚至谷歌和Facebook现在也在使用XMPP。 XMPP现在似乎是面向未来的选择。

  • IRC是一种多对多的聊天机制。有DCC,但主要是建立一对一的通信渠道。我认为,如果你确实实现了基于IRC的东西,那么你会花费大量的时间来完成你不想要它的多对多功能,并且除了你之外不会有太多其他功能。 d还必须将DCC实现替换为AJAX / XmlHttpRequest / WebSockets。

  • 如果您最终定制的东西越来越多,XMPP设计精良,规范明确,是一个良好的基础。您可以在不中断或头痛的情况下逐步替换Web客户端,桌面客户端和服务器。

一些可能的警告:

  • XMPP服务器希望与其他服务器通信,因为该协议旨在联合。你需要确保不会发生这种情况。 XMPP通常在5222上用于客户端 - >服务器,5269用于服务器< - >服务器,但也使用SRV。

  • 您选择的客户也是如此。您可能需要将其剪切下来以确保用户无法使用更常用的常用功能,例如在名册中添加和删除用户(更糟糕的是,例如,GTalk的外人会设法混淆并可能将您的客户网络化)

我认为您可能对XMPP提出的两个最大问题是:

  1. 管理XMPP服务器上的用户和名单,因为它们主要用于一般用途而不是沙盒环境。服务器倾向于期望并允许客户注册,设置密码等,而你可能想要防止这种情况发生并自己管理所有内容。

  2. 删除所有可能导致问题的额外功能。您可能不希望您的客户互相交谈,传输文件等。

  3. 我在2002年左右设置并维护了一个私有的多站点,多服务器,私有XMPP安装,涵盖了许多连接的客户。我必须做的主要事情是:

    1. 如上所述,减少了服务器实施。我使用了jabberd 1.x,它使用XML文件进行配置。我通过提供已预先填充的名册XML文件将其与我们的用户数据库集成。理论上,用户可以搞乱他们的名单,但他们会被服务器覆盖。实际上,这并没有发生,因为客户端软件阻止了它。您可能需要更进一步,但我相信现在有足够的服务器允许它。

    2. 获取可自动预先配置且不会搞砸的客户端实现。我选择并修补了特定客户端(Psi)以添加“锁定”模式,该模式可用于删除所有与配置相关的UI元素,包括名单管理选项。而是由服务器自动完成配置。然后,用户将拥有一些简单的东西,他们没有必要配置,也不会出错。这样的事情可能适用于您的银行经理 - 这将大大节省支持。

答案 1 :(得分:0)

很久以后,出现了一些较新的技术,即WebRTC

它允许以P2P方式进行音频/视频呼叫,数据传输,同时使用本机浏览器API。