Closed. 这个问题正在寻求书籍、工具、软件库等的推荐。不满足堆栈溢出指南 /help/closed-questions 。目前不接受答案。
我需要为一个网站实现一个聊天系统,以便该网站的客户可以通过该网站与他们的客户服务代表进行一对一的在线交谈。
所以我需要的是一个能够执行以下操作的系统:
在浏览器中显示代表列表,状态表明他们是否在线
允许用户与代表开始聊天;用户可能会看到一个新的屏幕或弹出窗口,他们可以在其中聊天。
该网站是 HTTP,但聊天需要是 HTTPS,因此我想在现有屏幕上有一个覆盖层来进行聊天,例如就像 Facebook 那样,不太合理
经理需要一些应用程序或网站,他们可以登录并与客户聊天。
显然,如果可能的话,我更喜欢开源解决方案。
我们在大多数事情上都使用 Java,但这并不重要,如果有必要,我不介意使用另一种技术安装系统。
到目前为止我考虑的是:
使用 Jabber/XMPP,使用 AJAX 客户端通过 HTTPS 进行通信;那里有很多,我不确定哪个是最好的,也许JWChat http://blog.jwchat.org/ (截屏 http://ostatic.com/files/images/jwchat_image_3.jpg )。这样做的好处是,银行经理可以根据需要使用桌面客户端(例如 Windows 客户端),如果他们整天使用桌面客户端,可能会有更好的 UI。
“irc”也是一个开放协议,毫无疑问有许多可用的客户端实现;但是我认为没有办法遵守使用 HTTPS(或者可能是其他安全协议)的安全要求。
我做了很多 GWT 编程,在“GWT 应用程序”一书中有一个简单的即时消息客户端实现(demo http://messenger.gwtapps.com/ )。也许我可以以类似的风格推出自己的作品?
我的问题:
我没有考虑哪些方法?
你会采取什么方法?例如您使用过的软件哪个对您有用?
如果你要例如使用 Jabber/XMPP(没有更多信息,我有点倾向于该解决方案..)您会考虑哪种 AJAX 客户端?
您错过的一个选项是基于 SIP 的选项。尽管 XMPP 似乎在即时消息传递的特定情况下胜出,但 SIP 和 XMPP 一直被认为有些重叠。我对 SIP 上的 IM 没有任何了解。
我会选择 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 还必须将 DCC 实现替换为 AJAX/XmlHttpRequest/WebSockets 中的某些内容。
如果您最终要定制越来越多的东西,XMPP 设计精良、规范明确,是一个良好的起点。您可以逐步替换 Web 客户端、桌面客户端和服务器,而不会造成中断或令人头疼。
一些可能的警告:
我认为 XMPP 可能存在的两个最大问题是:
在 XMPP 服务器上管理用户和名册,因为它们主要是为一般用途而不是沙盒环境而设计的。服务器倾向于期望并允许客户端注册、设置密码等,而您可能希望既防止这种情况发生又自己管理一切。
删除所有可能导致问题的额外功能。您可能不希望您的客户互相交谈、传输文件等。
早在 2002 年,我就已经建立并维护了一个私有的多站点、多服务器、私有 XMPP 安装,涵盖了许多连接的客户。我要做的主要事情是:
如上所述,减少服务器实现。我使用 jabberd 1.x,它使用 XML 文件进行配置。我通过提供已预先填充的名册 XML 文件将其与我们的用户数据库集成。理论上,用户可以弄乱他们的名单,但他们会被服务器覆盖。实际上,这并没有发生,因为客户端软件阻止了它。您可能需要比这更进一步,但我相信现在有足够灵活的服务器来允许它。
获得一个可以自动预配置且不会混乱的客户端实现。我选择并修补了一个特定的客户端 (Psi),以添加“锁定”模式,该模式可用于删除所有与配置相关的 UI 元素,包括名册管理选项。配置由服务器自动完成。然后,用户将获得一些简单的东西,他们不需要配置并且不会出错。这样的事情可能对你的银行经理有用——它将节省很多支持。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)