我正在寻找一个允许与 Web 应用程序紧密集成的消息传递平台(如 XMPP)
Posted
技术标签:
【中文标题】我正在寻找一个允许与 Web 应用程序紧密集成的消息传递平台(如 XMPP)【英文标题】:I'm searching for a messaging platform (like XMPP) that allows tight integration with a web application 【发布时间】:2010-05-14 12:09:00 【问题描述】:在我工作的公司,我们正在构建一个用于协作的 Web 应用程序集群。诸如会计、计费、CRM 等。
我们使用的是 RESTfull 技术:
-
对于数据库,我们使用 CouchDB
不同的应用程序相互通信并通过 http 与数据库通信。
此外,我们提供单点登录解决方案,因此当您登录一个应用程序时,您会自动登录到另一个应用程序。
对于我们使用 Python (Pylons) 的所有应用程序。
现在我们需要将即时消息添加到堆栈中。 我们需要同时支持 Web 和桌面客户端。但仅仅能够聊天是不够的。 我们需要能够实现以下所有(以及更多类似的事情)。
-
当有人被分配任务时,他们必须收到一条消息。我想这可以通过一些系统守护进程来实现。
必须有一个选项可以按许多不同的属性自动将人员分组。例如,必须有按地理位置、按公司分部、按工作类型划分的组(所有来自不同城市和不同公司分部的程序员必须组成一个组),以便可以向选择的组发送大量消息。
房间应该自动创建和销毁。例如,当几个人访问同一张发票时,必须自动为他们创建一个房间(并且他们必须自动加入)。而当所有的发票都离开时,房间必须被销毁。
来自我们的应用程序的身份验证和授权。
我可以使用自定义解决方案来实现这一点,例如 hookbox http://hookbox.org/docs/intro.html 但是我在支持桌面客户端时会遇到很多问题。
我以前没有使用即时消息的经验。我最近一直在读这个。我一直在看像 ejabberd 这样的东西。但那段时间很艰难,我根本找不到我想要的东西是否可能。
因此,如果有该领域经验的人可以帮助我提供一些建议、文章、关于可能发生的事情的故事等,我会很高兴。
【问题讨论】:
【参考方案1】:就像上面建议的 frx 一样,StropheJS 的人有一本关于 web+xmpp 编码的好书,但是既然你提到你没有这种类型的编码经验,我建议你和一些有经验的人谈谈 :) 这会节省你的时间从长远来看——我不是说不要尝试实现 frx 概述的内容,这可能是一个有趣的项目:)
我知道有一个小组已经实现了类似的东西,与他们聊天将有助于巩固你的想法:http://andyet.net/(我根本不隶属于他们,除了 XMPP 开发社区很小的事实而且我们往往互相认识:)
【讨论】:
【参考方案2】:所有目标都可以通过 ejabberd、strophe 和少量服务器端脚本来实现
-
当某人被分配任务时,服务器端脚本可以轻松地向 xmpp 服务器进行身份验证并将消息节发送到分配的 JID。这是微不足道的任务。
要将不同的人分组,如果这些用户属性存储在某处,则可以通过网络聊天应用轻松完成。只需在认证后加入他们特定的多用户聊天室即可。
Ejabberd 可以选择自动创建和销毁房间。
Ejabberd 有多种授权方式,包括数据库和脚本授权
你可以看看 StropheJS 库,他们发布了很棒的书(平装本)。真心推荐看这本书http://professionalxmpp.com/
【讨论】:
以上是关于我正在寻找一个允许与 Web 应用程序紧密集成的消息传递平台(如 XMPP)的主要内容,如果未能解决你的问题,请参考以下文章
寻找允许连接到 RESTful Web 服务的报表设计器 [关闭]
Architect Database 允许应用使用 Windows 集成身份验证或 FBA
ASP.NET MVC CORE Web 应用程序集成测试与 EF Core 内存数据库 - 每次测试的新数据库