在Web浏览器中实现聊天系统

我们希望有基于Web的应用程序来跟踪问题,知识管理和聊天系统。 用户登录后,用户可以与服务工程师聊天。

我们将在浏览器中使用Ajax进行聊天。 但是服务器端我们不确定如何实现聊天? 必须保存聊天记录以进行横向查看。 当有人开始聊天时,系统必须找到可用的服务工程师,他将开始与客户接口。

任何更好的方法来处理网络聊天系统? 我们可以使用Python,PHP,Ruby / Rails,Grails或.NET

我们可以使用可用的系统,我们需要更好的接口/ api到可用的系统,以便它可以集成到我们的应用程序中。

哦。 如果我必须实现这样的东西,我会采用XMPP(Jabber)服务器。 为什么重塑?

有两个服务器非常稳定且function丰富: ejabberd (在Erlang中实现)和OpenFire(在Java中实现)。 我个人更喜欢OpenFire,因为它更容易配置,并且如果你想扩展它的function,Java开发人员更容易找到……但这是一个品味问题。

对于Web客户端,有一种名为BOSH的技术。 它允许您不会每X秒轮询一次请求,但会在消息可用时立即接收消息。 BOSH是XMPP标准的一部分。 有一个名为Strophe JS的JavaScript库,可以让您轻松地在网页上使用BOSH。 有一个示例实现 。

此外,您的东西可能更适合桌面IM客户端而不是基于Web。 如果您使用XMPP,则可以使用任何具有Jabber支持的现有IM客户端自动获得连接服务的function。

要获得提及的function以选择可用的服务工程师,您可以实现servlets器插件而不是整个服务器。 历史记录可在两个服务器中配置。

最后,我的观点是:采用已经编写并经过validation的XMPP服务器,其BOSH使用Strophe JS和一个小插件来选择免费服务工程师。

我们运行一个名为OpenFire的XMPP(jabber)服务器,它有一个名为FastPath的网络聊天扩展。 一个缺点是它迫使我们所有人使用相同的客户端(Spark)或冒险到达非Spark客户端的聊天请求消失。 但它可以自定义,您可以捕获任何活动和统计数据。

你考虑过使用Erlang吗? 它可能需要很少的工作才能开始。

我不知道你想要什么的完整系统,但是Erlang 非常容易学习,并且有一个聊天服务器的例子 ,你可以修改它以满足你的需求。

显然首先要与作者明确。