【问题标题】:Implementing chat system with in Web browser在 Web 浏览器中实现聊天系统
【发布时间】:2010-02-01 08:46:33
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您是否重新发明它,或者您可以使用无数现有产品中的一种来支持实时聊天?
  • 你考虑过使用 Erlang 吗?它可能只需要很少的工作就可以开始。
  • 我们可以使用可用系统,我们需要更好的可用系统接口/api,以便它可以集成到我们的应用程序中
  • @Tor Valamo,如果我们有使用 erlang 的现成解决方案,我们可以这样做吗?你知道一些系统吗?我们没有 erlang 方面的专业知识。
  • 添加了我的 cmets 作为答案,因为它有点朝那个方向发展..

标签: .net php python ruby-on-rails


【解决方案1】:

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

有两个非常稳定且功能丰富的服务器:ejabberd(用 Erlang 实现)和 OpenFire(用 Java 实现)。就我个人而言,我更喜欢OpenFire,因为它更容易配置,而且如果你想扩展它的功能,Java 开发人员也更容易找到……但这只是个人喜好问题。

对于网络客户端,有一种称为BOSH 的技术。它允许您不要每隔 X 秒就请求轮询服务器,而是在消息可用时立即接收消息。 BOSH 是 XMPP 标准的一部分。有一个名为 Strophe JS 的 JavaScript 库,可让您轻松地在网页上使用 BOSH。有一个example implementation

此外,桌面 IM 客户端比基于 Web 的 IM 客户端更能让您满意。如果您使用 XMPP,您将自动获得使用任何支持 Jabber 的现有 IM 客户端连接到服务的能力。

要获得提到的功能以选择可用的服务工程师,您可以实现小的服务器插件而不是整个服务器。历史可在两台服务器中配置。

最后,我的意见是:使用已经编写并经过验证的 XMPP 服务器,它的 BOSH 使用 Strophe JS 和一个小插件来选择免费的服务工程师。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      我不知道你想要什么完整的系统,但 Erlang 是 very easy to learn 并且有 an example of a chat server,你可以修改它以满足你的需要。

      显然要先跟作者说清楚。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多