openfire维持在线状态,监听消息
  public  static  void  testLoginStatus()throws  XMPPException,InterruptedException {
        AccountManager accountManager;
        final ConnectionConfiguration connectionConfig = new ConnectionConfiguration("127.0.0.1", Integer.parseInt(""), "");
// 允许自动连接
        connectionConfig.setReconnectionAllowed(true);
        connectionConfig.setSendPresence(false);
        final Connection connection = new XMPPConnection(connectionConfig);
        try {
            connection.connect();// 开启连接
            accountManager = connection.getAccountManager();// 获取账户管理类
        } catch (XMPPException e) {
            throw new IllegalStateException(e);
        }
        connection.login("", "", "");
        Presence presence=new Presence(Presence.Type.available);
        presence.setStatus("");
        connection.sendPacket(presence);
        ProviderManager.getInstance().addIQProvider("ping", "urn:xmpp:ping", new PingIQProvider());
        connection.addPacketListener(new PacketListener() {
            @Override
            public void processPacket(Packet p) {
                try {
                    Thread.sleep();
                } catch (Exception ex){}
                PingIQ pingIQ = (PingIQ) p;
                IQ pongIQ = pingIQ.createResultIQ(pingIQ);
                // 返回
                connection.sendPacket(pongIQ);
            }}, new PacketTypeFilter(PingIQ.class));
//Roster roster=connection.getRoster();
//roster.createEntry("002@127.0.0.1","001", new String[]{"Friends"});
        //监听接收到的消息  包括单聊 群聊  和广播
// ChatManager cm=connection.getChatManager();
//        cm.addChatListener(new ChatManagerListener() {
//            @Override
//            public void chatCreated(Chat chat, boolean create) {
//                chat.addMessageListener(new MessageListener() {
//                    @Override
//                    public void processMessage(Chat chat, Message msg) {
//                        if (msg.getBody() != null) {
//                            try {
//                                System.out.println("cm:"+msg.getBody());
//                                System.out.println(chat.getParticipant());
//                                chat.sendMessage("你刚才说的是:" + msg.getBody()); // 发送消息
//                            } catch (XMPPException e) {
//                                e.printStackTrace();
//                            }
//                        }
//                    }
//                });
//            }
//        });
//单聊监听
        Chat mychat = connection.getChatManager().createChat("002@10.39.73.150/Spark", // 接收端的JID,JID是要加域的
                new MessageListener() {
                    @Override
                    public void processMessage(Chat chat, Message message)  {
                        String messageBody = message.getBody();
                        try {
                            if (message.getBody()!=null) {
                                System.out.println("接受到来自002的消息:" + message.getBody());
                                chat.sendMessage("您发的消息是:" + message.getBody());
                            }
                        }catch (Exception ex){
                            System.out.println(ex.getMessage());
                        }
                    }
                });
        Message msg = new Message();
        msg.setBody("upload/casePic/2016/5/11/14629304841938816.jpg");
        mychat.sendMessage(msg);
      //  connection.disconnect();
        while (true);
    }
openfire维持在线状态,监听消息的更多相关文章
- Android监听消息通知栏点击事件
		Android监听消息通知栏点击事件 使用BroadCastReceiver 1 新建一个NotificationClickReceiver 类,并且在清单文件中注册!! public class N ... 
- ActiveMQ监听消息并进行转发,监听不同的mq服务器和不同的队列
		工作中刚接触mq消息业务,其实也就是监听一下别的项目发送的消息然后进行对应的转发,但是监听的mq会有多个,而且转发的地址也可能有多个,这里就使用spring集成的方式!记录一下实现方式: 监听多个mq ... 
- Yii2.0 安装yii2-queue并在Linux启动守护进程监听消息
		一.什么是yii2-queue? Yii2-queue是Yii2.0 PHP框架下一个消息队列拓展插件,支持基于DB, Redis, RabbitMQ, AMQP, Beanstalk 和 Gearm ... 
- 重学 Java 设计模式:实战观察者模式「模拟类似小客车指标摇号过程,监听消息通知用户中签场景」
		作者:小傅哥 博客:https://bugstack.cn - 原创系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 知道的越多不知道的就越多 编程开发这条路上的知识是无穷无尽的, ... 
- 使用jedis实现Redis消息队列(MQ)的发布(publish)和消息监听(subscribe)
		前言: 本文基于jedis 2.9.0.jar.commons-pool2-2.4.2.jar以及json-20160810.jar 其中jedis连接池需要依赖commons-pool2包,json ... 
- spring+activemq实战之配置监听多队列实现不同队列消息消费
		摘选:https://my.oschina.net/u/3613230/blog/1457227 摘要: 最近在项目开发中,需要用到activemq,用的时候,发现在同一个项目中point-to-po ... 
- redis事件监听及在订单系统中的使用
		https://blog.csdn.net/qq_37334135/article/details/77717248 通常在网上买好物品,或者说手机扫码后,点击付款,这时就会向后台发送请求,生成订单信 ... 
- XMPP——Smack[2]会话、消息监听、字体表情和聊天窗口控制
		连接之后,拿到了connection,通过它可以搞定会话 建立一个会话 MessageListener msgListener = new MessageListener() { public voi ... 
- Rabbitmq无法监听后续消息
		现象: 消息队列在处理完一条消息后,无法继续监听后续消息. 首先,系统启动时要启动接收方法如下: protected void Application_Start() { RouteTable.Rou ... 
随机推荐
- GO语言中的几个关键思想
			GO语言的设计理念与C++,Java,Python之流大相径庭. 一.没有函数重载 GO语言里面没有函数重载,Java.C#.C++三位大牛都是支持函数重载的,Python虽然不支持函数重载,但是支持 ... 
- leetcode770. Basic Calculator IV
			此题真可谓是练习编程语言的绝好材料 ! import java.util.*; class Solution { class Item { Map<String, Integer> var ... 
- activiti实战--第二章--搭建Activiti开发环境及简单示例
			(一)搭建开发环境 学习资料:<Activiti实战> 第一章 认识Activiti 2.1 下载Activiti 官网:http://activiti.org/download.html ... 
- sqlserver学习笔记(三)—— 为数据库添加新的用户
			首先,用windows或sa身份登录sqlserver, 打开安全性——登录名——右键新建登录名:在选择页——常规中,新建命为user_b的登录名,选择sqlserver身份验证方式,设置密码确认密码 ... 
- iOS11新特性之LargeTitle
			UI风格 在iOS 11中,系统APP使用了这种UI风格.这种风格最明显的变化就是使用了iOS 11的新特性--Large Title和新的SearchController. Demo GitHub: ... 
- C# Httpclient客户端操作
			原文地址:https://www.cnblogs.com/Xujg/p/4113387.html HttpClient 当前主流用法,异步请求,自.NET4.5开始可从Nuget包管理中获取. usi ... 
- hashCode方法
			hashCode方法: 当覆写(override)了equals()方法之后,必须也覆写hashCode()方法,反之亦然.这个方法返回一个整型值(hash code value),如果两个对象被eq ... 
- 关于 f 散度
			在概率统计中,f散度是一个函数,这个函数用来衡量两个概率密度p和q的区别,也就是衡量这两个分布多么的相同或者不同. 1.f散度的定义p和q是同一个空间中的两个概率密度函数,它们之间的f散度可以用如下方 ... 
- Spring boot validation校验
			使用 Hibernate validator 的步骤:1. 在 Pojo 类的字段上, 加上 Hibernate validator 注解2. 在Controller 函数的形参前加上 @Valid ... 
- 转 Kafka docker
			Kafka 教程 http://haofly.net/kafka/ Posted on 2016-12-23 | In tools | | Views: 224 重要概念 生产者(Produc ... 
