XMPP客户端

Candy客户端

Candy是一个基于JavaScript的多用户客户端。

项目地址:http://candy-chat.github.io/candy/

Candy项目中3方库如下:

  • Strophe.js an XMPP library for JavaScript
  • jQuery The Write Less, Do More, JavaScript Library
  • mustache.js Logic-less templates with JavaScript
  • Bootstrap front-end framework, for responsiveness to various screen sizes

其中jQuery在官方示例中使用1.10.2版本(90.1kb),在现代浏览器中也可以使用Zepto.js替代(Zepto.js 1.2.0 25.7 kb, gzip压缩后9.6k)。

客户端配置

参照样例引入需要的类库和样式后,根据服务设置配置相关信息。
核心代码如下:

    <script type="text/javascript">

    var config = {
                  "endpoint": "http://openfire.j4ai.com:7070/http-bind/",
                  "jid": "test3@pi-stations",
                  "password": "123",
                  "core": {
                    "debug": true,
                    "autojoin": [
                      "[email protected]"//注意conference为服务子域
                    ]
                  },
                  "view": {
                    "assets": "lib/candy/res/",
                    "language": "cn"
                  }
                };
    $(document).ready(function() {
        Candy.init(config.endpoint, config);

        Candy.Core.connect(config.jid, config.password);
    });
    </script>
    <div id="candy"></div> <!-- 此DOM节点为程序绑定的页面入口 -->

在浏览器中打开页面。如果账户名、密码、聊天室信息无误,在openfire管理界面中可以在用户列表中看到用户上线,聊天室中看到新增用户。

基于Candy的客户端

实现逻辑

输出消息到客户端。

核心代码如下:

        $(Candy).on('candy:view.message.before-show', function(evt, args) {
            console.log(evt, args);
        });

其中:

设置candy节点不可见,<div id="candy" style="display: none;"></div>屏蔽Candy。

详解

args数据包:

{
  "element": {
    "": ""
  },
  "from": "",
  "message": "",
  "name": "",
  "roomJid": "",
  "stanza": "",
  "xhtmlMessage": ""
}
参数 含义 示例
element
from [email protected]/admin
message Message text test message
name Name of the sending user admin
roomJid Room JID [email protected]/admi
stanza XMPP节点信息
xhtmlMessage undefined

发送消息

        setTimeout(()=>{
            $('[name="message"]').val(30930);
            $('[name="submit"]').click();
        },8000);

其中:

  • $('[name="message"]')选取消息输入框
  • $('[name="submit"]').click() 模拟发送按钮点击

用户管理

自己的客户端

借助Strophe.js,我们来手写一个客户端。

results matching ""

    No results matching ""