zoukankan      html  css  js  c++  java
  • openfire/spark/asmack 环境调试纪要

    项目需要简单搭建openfire/spark/asmack的环境及程序demo,本文简单记录以免遗忘。

    1、openfire/spark 是java编写的xmpp服务器及PC客户端,安装过程相当简单一直next;需要注意的是openfire中配置的域名,后续会作为客户端接入的地址,可以配置成你的局域网IP。

    2、asmack是android下的smack报,即一个XMPP协议栈的客户端版本,记录如下:

    • 应用启动后简历一个xmpp连接
    con = new XMPPConnection("192.168.0.28");
    con.connect();
    • 客户端首先要注册用户,用户的账号最终要符合XMPP标准,即XX@XXX

    注册完成并登陆后会在openfire的管理后台看见该用户信息以及登陆情况。

    con.login(account, password);
    • 客户端发送到XMPP服务端的消息被称为packet,根据协议封装为三种:
      • message:最基本的推送消息,不要求响应,用以IM中;
      • presence: 用以表示用户的状态,如在线、离开等;
      • IQ(info/query):一个实体发出请求,要求另外一个实体给出响应;

    Packet的接受有同步和异步两种,如下:

    // 创建一个packet过滤器来监听来自一个特定用户的新的消息
    //我们可以使用一个AndFilter来结合其它两个过滤器。 
    PacketFilter filter = new AndFilter(new PacketTypeFilter(Message.class), 
            new FromContainsFilter("mary@jivesoftware.com"));
    // 假设我们已经创建了一个名为"connection"的XMPPConnection。
    
    // 首先,用我们创建的过滤器注册一个packet收集器。
    PacketCollector myCollector = connection.createPacketCollector(filter);
    // 通常,您应该用收集器来些什么,像等待新的packet。
    
    // 接下来,创建一个packet监听器。我们可以简便地使用匿名内部类。
    PacketListener myListener = new PacketListener() {
            public void processPacket(Packet packet) {
                // 在这里用收到的packet做些什么。
            }
        };
    // 注册这个监听器。
    connection.addPacketListener(myListener, filter);
    • Roster 在asmack中代表用户,可以是一个用户,也可以是一个用户组:
    List<RosterEntry> entries = new ArrayList<RosterEntry>();
    RosterGroup rosgrou = con.getRoster().getGroup(group);
    Collection<RosterEntry> roscol = rosgrou.getEntries();
    Iterator<RosterEntry> iter = roscol.iterator();
    while (iter.hasNext()) {
        entries.add(iter.next());
    }
    return entries;
    • 消息的发送采用chat或者chatgroup,该类是在packet基础上的封装
    Chat newChat = connection.createChat("jsmith@jivesoftware.com");
    Message newMessage = newChat.createMessage();
    newMessage.setBody("Howdy!");
    message.setProperty("favoriteColor", "red");
    newChat.sendMessage(newMessage);
  • 相关阅读:
    看《到了30岁还是处男,似乎会变成魔法师》有感
    2021-1-6复习js的基础知识点
    2020-1-5的学习内容总结
    javascript
    css
    HTML
    语音红包小程序开发项目建议以及营销玩法
    3天小程序快速入门教程+案例demo,免费索取!
    关于微擎小程序的操作的步骤,如何上传小程序?
    获取微信公众号文章封面图的技巧/网站
  • 原文地址:https://www.cnblogs.com/Fredric-2013/p/4627411.html
Copyright © 2011-2022 走看看