mqtt消息推送 java_MQTT+ActiveMQ实现消息推送(服务器端java实现)
上一篇文章已经介绍了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实现)相关推荐
- 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 ...
- MQTT+ActiveMQ实现消息推送(移动端)
这个小程序是我导师给我布置的一个任务,网上教程不是很多,遇到的一些困难都是自己解决的,所以写出来分享一下,有什么问题大家可以留言,尽力帮大家解决. 首先,我们需要先下载activeMQ (官网:htt ...
- 关于Android安卓APP保活 - 安卓消息推送详解 - 安卓端外推送离线推送
转自:http://zhangtielei.com/posts/blog-android-push.html 说Android端外推送比较烦,实际有两层意思:首先是说实现上比较麻烦,至今业界也没有找到 ...
- springboot定时发送短信_springboot 整合websocket实现消息推送(主动推送,具体用户推送,群发,定时推送)...
websocket springboot 整合websocket实现消息推送(主动推送,具体用户推送,群发,定时推送) 使用WebSocket构建交互式Web应用程序 本指南将引导您完成创建" ...
- python消息推送_Python阿里云消息推送调用API
很多公司测试APP推送时候,应该也是很头疼:推送环境:测试.正式,稍不注意就把测试的push到正式上,导致所有用户都收到 例子很多: 其实阿里.极光都有推送Api,直接调用API就ok,特别是有的公司 ...
- miui微博html5版关闭,MIUI10迎来最后一波开发版推送 可关闭广告消息
原标题:MIUI10迎来最后一波开发版推送 可关闭广告消息 8月30日,小米MIUI10最后一波开发版正式外发公测.按惯例,这也是MIUI11保密功能进版测试的一个重要信号.本次开发版主要以修复和优化 ...
- 企业微信H5_消息推送概述,发送应用消息示例
文章目录 一.阅读和调试 1. 文档阅读 2. postman发送消息 二.实战演练 2.1. 发送消息 2.2. 前端代码 2.3. 后端代码 2.4. 发送文本消息 2.5. 接收消息 三.源码分 ...
- php个推透传消息,GitHub - Lysice/laravel-getui: Laravel个推的集成包,支持单推/多推/全量推送/透传消息等功能。...
欢迎使用 Laravel扩展包 laravel-getui 网上有一款shaozeming/laravel-getui,自己在lumen下用,无奈报错依赖出问题,于是自己写了一款. 主要功能 单人推送 ...
- android极光推送 消息穿透广告弹窗,极光推送弹出两次消息,请大佬们帮忙指点迷津...
本帖最后由 m143 于 2021-3-19 11:55 编辑 1.打开APP ,从后端发送推送,APP连续收到2条推送信息2. 打开APP ,APP在后台运行,从后端发送推送(收到一条消息),点击消 ...
最新文章
- 句法依存分析_[NLP学习笔记]句法分析
- C/C++中的NULL讨论和总结
- imp 只导入索引_使用imp导入表和索引至不同表空间方法
- nginx location 正则表达式匹配多个地址_就是要让你搞懂Nginx,这篇就够了!
- 11,一道关于栈内存分配的题目
- this.$router.push用query传参对象时需注意的地方
- 实现对接顺丰业务的订单管理系统
- Tony的口胡呼呼(。-ω-)zzz
- ARC097F Monochrome Cat
- 如何删除我的计算机里的搜索记录,计算机里搜索栏的历史记录怎么删除?
- redis中字符串(String)类型常见命令操作 (附有示例)
- MTK处理器心路历程
- 自制Java大学英语四级成绩计算器
- 周志华 AdaBoost报告总结
- WorldQuant因子分析复现
- 【洛谷月赛】洛谷三月月赛题解报告
- i5 11320h和r5 5600u参数对比选哪个好
- PL/SQL Developer中拼接超长clob字段sql示例
- Oracle培训感想
- 如何将汉语数字转换成阿拉伯数字!