您如何在您的网站中实施 quickblox?

Posted

技术标签:

【中文标题】您如何在您的网站中实施 quickblox?【英文标题】:How do you implement quickblox in your website? 【发布时间】:2018-10-12 13:36:40 【问题描述】:

我只是 Web 开发的初学者。所以,这可能是一个非常愚蠢的问题。 我想使用 javascript 将 quickblox 包含到我的网站中。到目前为止,我已将 javascript 包含到我的网站中并创建了 quickblox 管理端应用程序。 您如何在您的网站中设置它以登录和聊天。我已经阅读了文档,但没有得到下一步该做什么。如果有人可以详细说明,如何从我们的网页打开 quickblox 窗口。 任何帮助表示赞赏。

编辑:- 我已经编辑了代码,但现在它显示在控制台上连接,然后什么也没有发生。我不知道我是否传递了不正确的 url 或其他东西。

<script>

            var QBAPP = 
                app_id: 'xxxx',
                auth_key: 'xxxxxxx',
                auth_secret: 'xxxxxxxx'
            ;

      // our parameters to connect to QuickBlox Chat service
            var CHAT = 
                server: 'chat.quickblox.com',
                bosh_server: 'http://chat.quickblox.com:5280'
            ;

            var params, connection;
            params = 
                login: 'xxxxxxx',
                password: 'xxxxxxx'
            ;

            QB.init(QBAPP.app_id, QBAPP.auth_key, QBAPP.auth_secret);
            QB.createSession(params, function (err, res) 
                if (err) 
                    console.log(err.detail);
                 else 
                    connectChat(res.user_id, params.password);
                
            );


            function connectChat(user_id, password) 
                var userJID = user_id + "-" + QBAPP.app_id + "@" + CHAT.server;
                var userPass = password;

                connection = new Strophe.Connection(CHAT.bosh_server);
                connection.rawInput = rawInput;
                //connection.rawOutput = rawOutput;

                connection.connect(userJID, userPass, function (status) 
                    switch (status) 
                        case Strophe.Status.ERROR:
                            console.log('[Connection] Error');
                            break;
                        case Strophe.Status.CONNECTING:
                            console.log('[Connection] Connecting');
                            break;
                        case Strophe.Status.CONNFAIL:
                            console.log('[Connection] Failed to connect');
                            break;
                        case Strophe.Status.AUTHENTICATING:
                            console.log('[Connection] Authenticating');
                            break;
                        case Strophe.Status.AUTHFAIL:
                            console.log('[Connection] Unauthorized');
                            break;
                        case Strophe.Status.CONNECTED:
                            console.log('[Connection] Connected');

                            // Create an event handler for getting messages
                            connection.addHandler(onMessage, null, 'message', null, null, null);
                            // send a presence message
                            connection.send($pres().tree());

                            break;
                        case Strophe.Status.DISCONNECTING:
                            console.log('[Connection] Disconnecting');
                            break;
                        case Strophe.Status.DISCONNECTED:
                            console.log('[Connection] Disconnected');
                            break;
                        case Strophe.Status.ATTACHED:
                            console.log('[Connection] Attached');
                            break;
                    
                );
            

      // logs
            function rawInput(data) 
                console.log('RECV: ' + data);
            
            function rawOutput(data) 
                console.log('SENT: ' + data);
            

            function onMessage(msg) 
                console.log(msg);

                var to = msg.getAttribute('to');
                var from = msg.getAttribute('from');
                var type = msg.getAttribute('type');
                var elems = msg.getElementsByTagName('body');

                // we must return true to keep the handler alive.  
                // returning false would remove it after it finishes.
                return true;
            

            function sendMessage() 
                params = 
                    to: '<some JID>', // JID of recipient QB User
                    from: connection.jid, // JID of sender QB user
                    type: 'chat' // type of the message
                
                var msg = $msg(params).c('body').t('Hello world!');
                connection.send(msg.tree());
            


        </script>
<html>
 <head>
  <meta charset="UTF-8">
  <title>Simple Recorder.js demo with record, stop and pause</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
   <script src="https://cdnjs.cloudflare.com/ajax/libs/quickblox/2.12.0/quickblox.min.js"></script>
         <script type="javascript" src="<?php echo base_url() ?>assets/js/strophe"></script>
 </head>
 <body>
 
     <h1>Welcome to chatbox</h1>
     <p>begin chatting here</p>
     </body>
     </html>

【问题讨论】:

【参考方案1】:

您包含没有版本号的 Quickblox CDN。

 src="https://cdnjs.cloudflare.com/ajax/libs/quickblox/x.x.x/quickblox.min.js">

确保在 x.x.x 的位置添加版本号

这是最新版本:

https://cdnjs.cloudflare.com/ajax/libs/quickblox/2.12.0/quickblox.min.js

脚本现在没有加载,这就是它不起作用的原因。

【讨论】:

以上是关于您如何在您的网站中实施 quickblox?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ios 的新 facebook sdk 中实现深度链接?

AdSense 使用教程: 通过让 Google 在您的网站上投放广告,帮助您从中获利

如何在 quickblox (Swift, iOS, xcode) 中实现发送图片

如何使用 loc_physical_ms 在您的网站上获取城市和邮政编码?

如何在NGINX网站服务器中实施SSL完美前向保密技术

html 如何在您的网站中嵌入日期。