首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Web浏览器中实现聊天系统

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

Stack Overflow用户
提问于 2010-02-01 16:46:33
回答 3查看 818关注 0票数 0

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

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

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-01 19:12:16

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

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

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

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

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

因此,最后,我的观点是:以已经编写和验证的XMPP服务器为例,它的BOSH使用Strophe JS和一个小插件来选择免费服务工程师。

票数 4
EN

Stack Overflow用户

发布于 2010-02-01 19:31:59

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

票数 2
EN

Stack Overflow用户

发布于 2010-02-01 17:00:02

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

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

显然要先跟作者说清楚。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2175513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档