Javascript 如何在XMPP聊天客户端Converse.js中自动打开聊天

Javascript 如何在XMPP聊天客户端Converse.js中自动打开聊天,javascript,xmpp,chat,converse.js,Javascript,Xmpp,Chat,Converse.js,我想将XMPP聊天集成到我的网站中。试图创建一个简单的聊天,它应该自动登录并自动打开一个聊天窗口。它只是可以自动登录,但之后什么也不做 <body> <script> converse.initialize({ show_controlbox_by_default: true, allow_muc: false, show_controlbox_by_default: true, auto_log

我想将XMPP聊天集成到我的网站中。试图创建一个简单的聊天,它应该自动登录并自动打开一个聊天窗口。它只是可以自动登录,但之后什么也不做

<body>


<script>
    converse.initialize({
        show_controlbox_by_default: true,
        allow_muc: false,
        show_controlbox_by_default: true,
        auto_login: true,
        authentication: 'login',
        jid: 'kelvin@xmpp.mydomainhere.com',
        password: 'kelvin',
        websocket_url: 'wss://xmpp.mydomainhere.com:5280/websocket'
    });

    console.log("000");

    converse.plugins.add('myplugin', {
        initialize: function () {
            this._converse.chats.open('jacky@xmpp.mydomainhere.com')

            var msg = converse.env.$msg({
                from: 'kelvin@xmpp.mydomainhere.com',
                to:'jacky@xmpp.mydomainhere.com',
                type:'chat'
            });
            this._converse.send(msg);
        }
    });

    </script>

    </body>
整个代码如下所示。为什么它不自动打开聊天窗口

<body>


<script>
    converse.initialize({
        show_controlbox_by_default: true,
        allow_muc: false,
        show_controlbox_by_default: true,
        auto_login: true,
        authentication: 'login',
        jid: 'kelvin@xmpp.mydomainhere.com',
        password: 'kelvin',
        websocket_url: 'wss://xmpp.mydomainhere.com:5280/websocket'
    });

    console.log("000");

    converse.plugins.add('myplugin', {
        initialize: function () {
            this._converse.chats.open('jacky@xmpp.mydomainhere.com')

            var msg = converse.env.$msg({
                from: 'kelvin@xmpp.mydomainhere.com',
                to:'jacky@xmpp.mydomainhere.com',
                type:'chat'
            });
            this._converse.send(msg);
        }
    });

    </script>

    </body>

<body>


<script>
    converse.initialize({
        show_controlbox_by_default: true,
        allow_muc: false,
        show_controlbox_by_default: true,
        auto_login: true,
        authentication: 'login',
        jid: 'kelvin@xmpp.mydomainhere.com',
        password: 'kelvin',
        websocket_url: 'wss://xmpp.mydomainhere.com:5280/websocket'
    });

    console.log("000");

    converse.plugins.add('myplugin', {
        initialize: function () {
            this._converse.chats.open('jacky@xmpp.mydomainhere.com')

            var msg = converse.env.$msg({
                from: 'kelvin@xmpp.mydomainhere.com',
                to:'jacky@xmpp.mydomainhere.com',
                type:'chat'
            });
            this._converse.send(msg);
        }
    });

    </script>

    </body>

逆向初始化({
默认情况下显示控制框:true,
允许_muc:false,
默认情况下显示控制框:true,
自动登录:true,
身份验证:“登录”,
吉德:'kelvin@xmpp.mydomainhere.com',
密码:“开尔文”,
websocket_url:'wss://xmpp.mydomainhere.com:5280/websocket'
});
控制台日志(“000”);
add('myplugin'{
初始化:函数(){
这个._converse.chats.open('jacky@xmpp.mydomainhere.com')
var msg=逆向环境$msg({
发件人:'kelvin@xmpp.mydomainhere.com',
致:'jacky@xmpp.mydomainhere.com',
类型:'chat'
});
此._逆向发送(msg);
}
});

从3.0.0版及更高版本开始,插件需要被列入白名单(通过设置),否则它们不会被初始化

<body>


<script>
    converse.initialize({
        show_controlbox_by_default: true,
        allow_muc: false,
        show_controlbox_by_default: true,
        auto_login: true,
        authentication: 'login',
        jid: 'kelvin@xmpp.mydomainhere.com',
        password: 'kelvin',
        websocket_url: 'wss://xmpp.mydomainhere.com:5280/websocket'
    });

    console.log("000");

    converse.plugins.add('myplugin', {
        initialize: function () {
            this._converse.chats.open('jacky@xmpp.mydomainhere.com')

            var msg = converse.env.$msg({
                from: 'kelvin@xmpp.mydomainhere.com',
                to:'jacky@xmpp.mydomainhere.com',
                type:'chat'
            });
            this._converse.send(msg);
        }
    });

    </script>

    </body>
因此,您只需在
converse.initialize
调用中添加
白名单插件:['myplugin']

<body>


<script>
    converse.initialize({
        show_controlbox_by_default: true,
        allow_muc: false,
        show_controlbox_by_default: true,
        auto_login: true,
        authentication: 'login',
        jid: 'kelvin@xmpp.mydomainhere.com',
        password: 'kelvin',
        websocket_url: 'wss://xmpp.mydomainhere.com:5280/websocket'
    });

    console.log("000");

    converse.plugins.add('myplugin', {
        initialize: function () {
            this._converse.chats.open('jacky@xmpp.mydomainhere.com')

            var msg = converse.env.$msg({
                from: 'kelvin@xmpp.mydomainhere.com',
                to:'jacky@xmpp.mydomainhere.com',
                type:'chat'
            });
            this._converse.send(msg);
        }
    });

    </script>

    </body>

除此之外,您还需要在调用
converse.initialize

之前注册插件。我添加了白名单中的插件,如下所示,但它仍然不起作用。有什么帮助吗?谢谢初始化({whitelisted_plugins:['myplugin'],按默认值显示_controlbox_:true,允许_muc:false,自动登录:true,身份验证:'login',jid:'kelvin@xmpp.mydomainhere.com,密码:'kelvin',websocket_url:'wss://xmpp.mydomainhere.com:5280/websocket' });在调用converse.initialize之前,您需要注册插件。我更新了我的答案。我已经切换了两个代码块。现在,插件块位于converse.initialize块之前。但它仍然不起作用。
<body>


<script>
    converse.initialize({
        show_controlbox_by_default: true,
        allow_muc: false,
        show_controlbox_by_default: true,
        auto_login: true,
        authentication: 'login',
        jid: 'kelvin@xmpp.mydomainhere.com',
        password: 'kelvin',
        websocket_url: 'wss://xmpp.mydomainhere.com:5280/websocket'
    });

    console.log("000");

    converse.plugins.add('myplugin', {
        initialize: function () {
            this._converse.chats.open('jacky@xmpp.mydomainhere.com')

            var msg = converse.env.$msg({
                from: 'kelvin@xmpp.mydomainhere.com',
                to:'jacky@xmpp.mydomainhere.com',
                type:'chat'
            });
            this._converse.send(msg);
        }
    });

    </script>

    </body>