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 ...
随机推荐
- python中对两个 list 求交集,并集和差集
python中对两个 list 求交集,并集和差集: 1.首先是较为浅白的做法: >>> a=[1,2,3,4,5,6,7,8,9,10] >>> b=[1,2,3 ...
- nginx端合并JS
转载于:http://www.tuicool.com/articles/IjMNnq 配置文件: location /static/css/ { concat on; concat_max_files ...
- winetricks 用WineTricks令你的Wine更完整
Linux下最有名的Windows环境模拟器就是WINE了.它提供了一个可以模拟WINDOWS环境的基本平台,在这上面你几乎可以运行任何你想运行的windows程序. 什么?你不相信?不要告诉我你的程 ...
- React(0.13) hello world
<!DOCTYPE html> <html> <head> <title>React JS</title> <script src=& ...
- dataset string dataset
DataSet ds = new DataSet(); ds.ReadXml(dataFile); Console.WriteLine(data.Length); string dataxml = d ...
- mysql合并binlog
例如: PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL DAY);
- 适合移动端与PC端的 CSS Reset - m_base.css
文章来源:http://www.cnblogs.com/HCJJ/p/6399185.html 具体代码 @charset "utf-8"; html { -ms-text-siz ...
- [转]greenplum(postgresql)之数据字典
greenplum是基于postgresql开发的分布式数据库,里面大部分的数据字典是一样的.我们在维护gp的时候对gp的数据字典比较熟悉,特此分享给大家.在这里不会详细介绍每个字典的内容,只会介绍常 ...
- axios 简单常用笔记
简单认知: 1.config.data是POST参数,config.params是GET参数 axios(url, [config]) + qs + application/x-www-form-ur ...
- 从ext4将mysql数据目录移动至lustre出现(InnoDB: Unable to lock ./ibdata1, error: 38.)
因为数据目录过大,因此我把目录从本地移到了共享存储中.在修改了/etc/my.cnf和/etc/init.d/mysqld之后发现数据库可以运行,但启动速度很慢 原因是原文件系统是ext4,而目标文件 ...