上一篇文章已经介绍了mqtt+activemq实现消息推送移动端的实现,也介绍了利用自带的web console进行消息发布的方法。但是在具体的项目应用中,当我们将需要将该消息推送模块嵌入到一个后台管理系统当中,我们就需要在web端来访问activeMQ来进行消息的发布。

同样用的是org.eclipse.paho.client.mqttv3包,相信看过上一篇文章已经有了一定的了解,直接来看代码@Controller

public class HelloController{

private static final String HOST = "tcp://127.0.0.1:1883";

private String TOPIC;

private String MESSAGE;

private static final String clientid = "server";

private MqttClient client;

private MqttTopic topic;

private String userName = "admin";

private String passWord = "password";

private MqttMessage message;

@RequestMapping(value="/redirect")

public String doPublish(HttpServletRequest request) throws MqttException {

//获取前台传过来的两个参数

TOPIC=request.getParameter("topic");

MESSAGE=request.getParameter("message");

//new mqttClient

//MemoryPersistence设置clientid的保存形式,默认为以内存保存

client = new MqttClient(HOST, clientid, new MemoryPersistence());

//与activeMQ连接的方法

connect();

//new mqttMessage

message = new MqttMessage();

//设置服务质量

message.setQos(2);

//设置是否在服务器中保存消息体

message.setRetained(true);

//设置消息的内容

message.setPayload(MESSAGE.getBytes());

//发布

publish(topic, message);

System.out.println("已发送");

return "result";

}

private void connect() {

// new mqttConnection 用来设置一些连接的属性

MqttConnectOptions options = new MqttConnectOptions();

// 设置是否清空session,这里如果设置为false表示服务器会保留客户端的连接记录,这里设置为true表示每次连接到服务器都以新的身份连接

// 换而言之,设置为false时可以客户端可以接受离线消息

options.setCleanSession(false);

// 设置连接的用户名和密码

options.setUserName(userName);

options.setPassword(passWord.toCharArray());

// 设置超时时间

options.setConnectionTimeout(10);

// 设置会话心跳时间

options.setKeepAliveInterval(20);

try {

// 设置回调类

client.setCallback(new PushCallback());

// 连接

client.connect(options);

// 获取activeMQ上名为TOPIC的topic

topic = client.getTopic(TOPIC);

} catch (Exception e) {

e.printStackTrace();

}

}

public void publish(MqttTopic topic, MqttMessage message) throws MqttPersistenceException, MqttException {

// 发布的方法

// new mqttDeliveryToken

MqttDeliveryToken token = topic.publish(message);

// 发布

token.waitForCompletion();

System.out.println("message is published completely! "

+ token.isComplete());

}

}

简陋的效果图

mqtt消息推送 java_MQTT+ActiveMQ实现消息推送(服务器端java实现)相关推荐

  1. mysql active推送消息_java实现基于activeMQ的消息推送

    一. jar包介绍 1. 点击此下载 apache-activemq-5.3.0,得到: activemq-all-5.3.0.jar activemq-web-5.3.0.jar 2. spring ...

  2. MQTT+ActiveMQ实现消息推送(移动端)

    这个小程序是我导师给我布置的一个任务,网上教程不是很多,遇到的一些困难都是自己解决的,所以写出来分享一下,有什么问题大家可以留言,尽力帮大家解决. 首先,我们需要先下载activeMQ (官网:htt ...

  3. 关于Android安卓APP保活 - 安卓消息推送详解 - 安卓端外推送离线推送

    转自:http://zhangtielei.com/posts/blog-android-push.html 说Android端外推送比较烦,实际有两层意思:首先是说实现上比较麻烦,至今业界也没有找到 ...

  4. springboot定时发送短信_springboot 整合websocket实现消息推送(主动推送,具体用户推送,群发,定时推送)...

    websocket springboot 整合websocket实现消息推送(主动推送,具体用户推送,群发,定时推送) 使用WebSocket构建交互式Web应用程序 本指南将引导您完成创建" ...

  5. python消息推送_Python阿里云消息推送调用API

    很多公司测试APP推送时候,应该也是很头疼:推送环境:测试.正式,稍不注意就把测试的push到正式上,导致所有用户都收到 例子很多: 其实阿里.极光都有推送Api,直接调用API就ok,特别是有的公司 ...

  6. miui微博html5版关闭,MIUI10迎来最后一波开发版推送 可关闭广告消息

    原标题:MIUI10迎来最后一波开发版推送 可关闭广告消息 8月30日,小米MIUI10最后一波开发版正式外发公测.按惯例,这也是MIUI11保密功能进版测试的一个重要信号.本次开发版主要以修复和优化 ...

  7. 企业微信H5_消息推送概述,发送应用消息示例

    文章目录 一.阅读和调试 1. 文档阅读 2. postman发送消息 二.实战演练 2.1. 发送消息 2.2. 前端代码 2.3. 后端代码 2.4. 发送文本消息 2.5. 接收消息 三.源码分 ...

  8. php个推透传消息,GitHub - Lysice/laravel-getui: Laravel个推的集成包,支持单推/多推/全量推送/透传消息等功能。...

    欢迎使用 Laravel扩展包 laravel-getui 网上有一款shaozeming/laravel-getui,自己在lumen下用,无奈报错依赖出问题,于是自己写了一款. 主要功能 单人推送 ...

  9. android极光推送 消息穿透广告弹窗,极光推送弹出两次消息,请大佬们帮忙指点迷津...

    本帖最后由 m143 于 2021-3-19 11:55 编辑 1.打开APP ,从后端发送推送,APP连续收到2条推送信息2. 打开APP ,APP在后台运行,从后端发送推送(收到一条消息),点击消 ...

最新文章

  1. 句法依存分析_[NLP学习笔记]句法分析
  2. C/C++中的NULL讨论和总结
  3. imp 只导入索引_使用imp导入表和索引至不同表空间方法
  4. nginx location 正则表达式匹配多个地址_就是要让你搞懂Nginx,这篇就够了!
  5. 11,一道关于栈内存分配的题目
  6. this.$router.push用query传参对象时需注意的地方
  7. 实现对接顺丰业务的订单管理系统
  8. Tony的口胡呼呼(。-ω-)zzz
  9. ARC097F Monochrome Cat
  10. 如何删除我的计算机里的搜索记录,计算机里搜索栏的历史记录怎么删除?
  11. redis中字符串(String)类型常见命令操作 (附有示例)
  12. MTK处理器心路历程
  13. 自制Java大学英语四级成绩计算器
  14. 周志华 AdaBoost报告总结
  15. WorldQuant因子分析复现
  16. 【洛谷月赛】洛谷三月月赛题解报告
  17. i5 11320h和r5 5600u参数对比选哪个好
  18. PL/SQL Developer中拼接超长clob字段sql示例
  19. Oracle培训感想
  20. 如何将汉语数字转换成阿拉伯数字!

热门文章

  1. windows mysql主主配置_基于docker MySQL数据库主主同步配置(windows上)
  2. k8s查看pod的yaml文件_【大强哥-k8s从入门到放弃04】Yaml语法解析
  3. 频谱仪使用方法图解_钳形电流表使用方法图解
  4. 【MM模块】 Goods Receipt 收货 4
  5. 事务RFC(TRFC)原理和实战解析
  6. 【转】 ABAP中的异常处理 - TRY CATCH的使用实例
  7. 释疑のABAP内表的比较
  8. 涨点小姿势 奥迪TFSI前面数字是什么
  9. CNZZ数据专家使用方法?
  10. smartforms金额或者数量字段显示不出来