【问题标题】:Converse.js core libraryConverse.js 核心库
【发布时间】:2017-03-17 20:31:12
【问题描述】:

我已经设置了 openfire 服务器并且可以连接 converse.js 客户端。它工作正常。

但我不想使用 converse.js 用户界面。有没有办法只使用没有 Backbone UI 部分的 converse api。

我尝试移除 Backbone 部分,但它不起作用。

我知道它在内部使用 strophe,但 converse 有现成的功能

【问题讨论】:

    标签: javascript xmpp converse.js


    【解决方案1】:

    首先,应该可以将 Converse 简单地用作引擎或 API,我已经做了一些工作以使这个用例可行。特别是通过将 Converse 拆分为插件。但是,我自己还没有像那样使用它,所以目前还只是理论上的。

    但是,Backbone 很关键,因为它不仅仅用于视图。主干模型和集合用于对对象之间的数据和关系进行建模。所以你不能删除它。

    如前所述,匡威是由插件组成的。最终构建中包含的插件(通过运行make dist 创建)都列在src/converse.js 中。

    您可以通过编辑此文件并删除不需要的插件来创建自定义构建。

    例如converse-chatview.js 插件包含用于渲染聊天框的主干视图。所以可以去掉。同样converse-controlbox.js 是一个视图,它呈现的控制框也可以被移除。 其他要删除的插件是 converse-minimize.jsconverse-dragresize.js,它们都是以 UI 为中心的。

    然而,美中不足的是。 converse-muc.js,为群聊提供支持,包含视图和模型,尚未拆分。所以如果你需要支持群聊,那么你需要包含那个插件,它的视图又依赖于converse-chatview.js,所以它也会被包含(即使你从converse-config.js中删除它)。

    需要将converse-muc.js 拆分为两个文件,converse-muc.jsconverse-muc-views.js(这可能会在未来的版本中发生)。然后你可以从你的构建中删除后者。

    所以,很抱歉,如果这不是一个非常令人满意的答案。

    您还可以编写自己的插件,在这些插件中,您可以覆盖或更改来自其他插件的任何模型、集合或视图(如果您的插件依赖于它们,因此在它们之后加载)。但是,这需要您对代码进行一些研究,以充分了解需要做什么。

    编辑:有关插件及其工作原理的更多信息,请查看底层库 pluggable.jsrelevant converse.js documentation

    【讨论】:

    • 谢谢 JC 品牌。我试图在 AngularJS 中转换库,这就是我苦苦挣扎的地方。我们使用 AngularJS 进行所有开发。好的部分是我熟悉 Backbone,并且会尝试一下。
    • 对于 Angular.js 集成,请看这里:github.com/jcbrand/converse.js/blob/master/docs/source/…conversejs.org 上的官方文档中还没有,但是一旦下一个版本发布就会出现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 2021-01-17
    • 2017-12-10
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多