使用 openfire 运行 converse 问题

Posted

技术标签:

【中文标题】使用 openfire 运行 converse 问题【英文标题】:Issue running converse with openfire 【发布时间】:2020-03-23 10:03:06 【问题描述】:

我已经用 xampp 配置了 openfire,并分别检查了 http-bind 和 c2s 连接的默认 7443 和 5222 端口。我已经在 openfire 上注册了用户 adam,levine。 现在我正在尝试为注册用户打开控制框,但我遇到了问题。 html文件运行converse

<!DOCTYPE html>
<html lang="en">
    <head>
    <title>Converse</title>
    <link type="text/css" rel="stylesheet" media="screen" href="https://cdn.conversejs.org/5.0.4/dist/converse.min.css" />
    <script src="https://cdn.conversejs.org/5.0.4/dist/converse.min.js"></script>
</head>

    <script>
         converse.plugins.add('myplugin', 
      initialize: function() 
        var _converse = this._converse;
        Promise.all([
            _converse.api.waitUntil('rosterContactsFetched'),
            _converse.api.waitUntil('chatBoxesFetched')
        ]).then(function() 
          _converse.api.chats.open('adam@localhost.resource');
        );
      
    );

    converse.initialize(
      bosh_service_url: 'https://localhost:7443/http-bind/',
      show_controlbox_by_default: true,
      whitelisted_plugins: ['myplugin'],
      debug: true
    );
    </script>
</html>

现在运行它什么都没有发生(控制框也没有打开),我收到了这个错误

converse-core.js:284  2019-11-27T19:12:11.257Z WARNING: Disconnect was called because: undefined 
converse-core.js:284  2019-11-27T19:12:11.257Z WARNING: Disconnect was called before Strophe connected to the server 
converse-chatboxviews.js:103 Uncaught (in promise) DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
    at i._ensureElement (https://cdn.conversejs.org/5.0.4/dist/converse.min.js:152:10339)
    at i.t.View (https://cdn.conversejs.org/5.0.4/dist/converse.min.js:55:44153)
    at i.constructor (https://cdn.conversejs.org/5.0.4/dist/converse.min.js:55:100544)
    at i.Backbone.Overview (https://cdn.conversejs.org/5.0.4/dist/converse.min.js:152:526)
    at new i (https://cdn.conversejs.org/5.0.4/dist/converse.min.js:55:53600)
    at Object.<anonymous> (https://cdn.conversejs.org/5.0.4/dist/converse.min.js:152:11125)
    at g (https://cdn.conversejs.org/5.0.4/dist/converse.min.js:55:33025)
    at p (https://cdn.conversejs.org/5.0.4/dist/converse.min.js:55:32873)
    at l (https://cdn.conversejs.org/5.0.4/dist/converse.min.js:55:30789)
    at Object.a.trigger (https://cdn.conversejs.org/5.0.4/dist/converse.min.js:55:32766)
converse-minimize.js:575 Uncaught TypeError: Cannot read property 'trimChats' of undefined
    at converse-minimize.js:575
    at g (lodash.js:10377)
    at _ (lodash.js:10426)
    at v (lodash.js:10337)

有人可以帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

Openfire 有一个名为 inVerse 的插件。这个插件是一个简单的 Converse 包装器,它为您提供了一个功能齐全的 Web 客户端。我建议您使用此插件,仅作为正确配置的示例。

【讨论】:

我们可以通过inVerse添加匡威插件吗? 不,不支持。【参考方案2】:

使用“localhost”作为 xmpp 域名配置 Openfire 会导致网络问题。请尝试改用服务器名称。

【讨论】:

以上是关于使用 openfire 运行 converse 问题的主要内容,如果未能解决你的问题,请参考以下文章

通过 Bosh 进行的 Openfire 带内注册无法与 Strophe/Strophe.register.js 一起使用

运行 localhost openfire 和 smack 客户端库 android

openfire主要插件介绍

怎样使用openfire实现 Web即时通信

如何为 Openfire 插件创建我自己的日志记录配置

在运行 Openfire 的 ubuntu 服务器上查找和更新 XMPP 版本