2

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

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

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

到目前为止我考虑的是:

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

我的问题:

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

2 回答 2

2

您错过的一个选项是基于 SIP 的。SIP 和 XMPP 一直被认为有些重叠,尽管 XMPP 似乎在即时消息传递的特定案例中胜出。我对 IM over SIP 没有任何了解。

我会选择 XMPP,因为:

  • 服务器实现已经成熟,这意味着您可以在以后根据需要更改服务器,而不会影响您的基础设施的其余部分。

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

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

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

  • IRC 是一种多对多的聊天机制。有 DCC,但主要是建立一对一的沟通渠道。我认为如果你确实实现了基于 IRC 的东西,你会花费大量时间在你不想要它的地方提取多对多功能,并且不会留下太多其他功能,因为你' d 还必须用 AJAX/XmlHttpRequest/WebSockets 替换 DCC 实现。

  • 如果您最终定制的东西越来越多,那么 XMPP 是经过精心设计、精心指定的,是一个很好的起点。您可以逐步更换 Web 客户端、桌面客户端和服务器,而不会造成中断或头痛。

一些可能的警告:

  • XMPP 服务器希望与其他服务器通信,因为该协议旨在被联合起来。你需要绝对确保这不会发生。XMPP 通常使用 5222 代表客户端-> 服务器,5269 代表服务器<-> 服务器,但也使用 SRV。

  • 无论您选择哪个客户,情况都是如此。您可能需要减少它以确保用户无法使用更通用的功能,例如从名册中添加和删除用户(更糟糕的是,GTalk 上的局外人设法混淆并可能对您的客户进行网络钓鱼) .

我认为 XMPP 可能遇到的两个最大问题是:

  1. 在 XMPP 服务器上管理用户和名册,因为它们主要是为一般用途而设计的,而不是沙盒环境。服务器倾向于期望并允许客户端注册、设置密码等,而您可能希望既防止这种情况发生又自己管理一切。

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

早在 2002 年左右,我就已经建立并维护了一个私有的多站点、多服务器、私有 XMPP 安装,覆盖了许多连接的客户。我必须做的主要事情是:

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

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

于 2010-11-11T17:24:16.190 回答
0

这是很久以后的事了,一些更新的技术出现了,即WebRTC

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

于 2015-12-03T13:49:00.047 回答