1

在我工作的公司,我们正在构建一个用于协作的 Web 应用程序集群。诸如会计,计费,CRM等之类的东西。

我们正在使用 RESTfull 技术:

  1. 对于数据库,我们使用 CouchDB
  2. 不同的应用程序通过 http 相互通信并与数据库通信。
  3. 此外,我们有单点登录解决方案,因此当您登录一个应用程序时,您会自动登录到另一个应用程序。
  4. 对于所有应用程序,我们都使用 Python(Pylons)。

现在我们需要将即时消息添加到堆栈中。我们需要同时支持 Web 和桌面客户端。但仅仅能够聊天是不够的。我们需要能够实现以下所有(以及更多类似的事情)。

  1. 当某人被分配到一项任务时,他们必须收到一条消息。我想这可以通过一些系统守护进程来实现。
  2. 必须有一个选项可以通过许多不同的属性自动将人员分组。例如,必须有按地理位置、按公司分部、按工作类型划分的组(所有来自不同城市和不同公司分部的程序员必须组成一个组),以便可以向选择的组发送大量消息。
  3. 房间应该自动创建和销毁。例如,当几个人访问同一张发票时,必须自动为他们创建一个房间(并且他们必须自动加入)。而当所有的发票都离开时,房间必须被销毁。
  4. 来自我们应用程序的身份验证和授权。

我可以使用 hookbox http://hookbox.org/docs/intro.html之类的自定义解决方案来实现这一点 ,但是在支持桌面客户端时我会遇到很多问题。

我以前没有使用即时消息的经验。我最近一直在读这个。我一直在看像 ejabberd 这样的东西。但那是一段艰难的时期,我根本找不到我想要的东西是否可能。

因此,如果在该领域有经验的人可以帮助我提供一些建议、文章、关于可能发生的事情的故事等,我会很高兴。

4

2 回答 2

1

就像上面建议的 frx 一样,StropheJS 的人有一本关于 web+xmpp 编码的好书,但是既然你提到你没有这种类型的编码经验,我建议你和一些有经验的人谈谈 :) 从长远来看,这会节省你的时间- 我不是说不要尝试实现 frx 的概述,它可能是一个有趣的项目 :)

我知道有一个小组已经实现了类似的东西,与他们聊天将有助于巩固你的想法:http ://andyet.net/ (我根本不隶属于他们,除了 XMPP 开发社区很小,我们往往互相认识:)

于 2010-05-19T03:28:08.170 回答
0

所有目标都可以通过 ejabberd、strophe 和很少的服务器端脚本来实现

  1. 当有人被分配任务时,服务器端脚本可以轻松地向 xmpp 服务器进行身份验证并将消息节发送到分配的 JID。那是微不足道的任务。
  2. 要将不同的人分组,如果这些用户属性存储在某处,则可以通过网络聊天应用轻松完成。只需在身份验证后加入他们,特别是多用户聊天室。
  3. Ejabberd 可以选择自动创建和销毁房间。
  4. Ejabberd 有多种授权方式,包括数据库和脚本授权

你可以看看 StropheJS 库,他们发布了很棒的书(平装本)。真心推荐读这本书http://professionalxmpp.com/

于 2010-05-18T15:23:50.950 回答