问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何采用mqtt协议实现android消息推送3

发布网友 发布时间:2023-09-19 12:12

我来回答

2个回答

热心网友 时间:2024-10-22 05:02

使用一个代理服务器message broker,客户端client连接上这个服务器,然后告诉服务器,可以接收哪些类型的消息,同时client也可以发布自己的消息,这些消息根据协议的内容,可以别的client获取。这样就实现了消息推送。
消息推送是通过一定的技术标准或协议,在互联网上通过定期传送用户需要的信息来减少信息过载的一项新技术。
如果想要使用消息推送,推荐使用深圳极光的消息推送系统。深圳极光是国内首个为移动应用开发者提供专业、高效的消息推送服务的产品。品牌成长的过程,就是与客户肩并肩迈向成功的过程。极光将以市场为导向,以创新为动力,以技术为支持,不断用心努力,为每一位尊贵的客户提供极致的服务。

热心网友 时间:2024-10-22 05:03

  MQTT是一项消息传递技术,由IBM再2001年发布。

  总结一下,机制就是使用一个代理服务器messagebroker,
  客户端client连接上这个服务器,然后告诉服务器说,我可以接收哪些类型的消息,
  同时,client也可以发布自己的消息,这些消息根据协议的内容,可以被其他client获取。
  只要手机客户端,连上服务器,然后就可以接收和发布消息了,不用自己写socket什么了,

  低带宽,低耗电量,代码量也少,很简单吧。

  package com.pig.test.mqtt;

  import com.ibm.mqtt.MqttClient;

  import
  com.ibm.mqtt.MqttException;
  import com.ibm.mqtt.MqttSimpleCallback;

  public class SubscribeClient {
  private final static String
  CONNECTION_STRING = "tcp://192.168.1.60:1883";
  private final static boolean
  CLEAN_START = true;
  private final static short KEEP_ALIVE =
  30;//低耗网络,但是又需要及时获取数据,心跳30s
  private final static String CLIENT_ID =
  "client1";
  private final static String[] TOPICS =
  {
  "Test/TestTopics/Topic1",
  "Test/TestTopics/Topic2",
  "Test/TestTopics/Topic3",
  "toku/client1"
  };
  private
  final static int[] QOS_VALUES = {0, 0, 2,
  0};
  
  //////////////////
  private MqttClient mqttClient =
  null;
  
  public SubscribeClient(String i){
  try {
  mqttClient =
  new MqttClient(CONNECTION_STRING);
  SimpleCallbackHandler
  simpleCallbackHandler = new
  SimpleCallbackHandler();
  mqttClient.registerSimpleHandler(simpleCallbackHandler);//注册接收消息方法
  mqttClient.connect(CLIENT_ID+i,
  CLEAN_START, KEEP_ALIVE);
  mqttClient.subscribe(TOPICS,
  QOS_VALUES);//订阅接主题
  
  /**
  *
  完成订阅后,可以增加心跳,保持网络通畅,也可以发布自己的消息
  */
  mqttClient.publish(PUBLISH_TOPICS, "keepalive".getBytes(), QOS_VALUES[0],

  true);
  
  } catch (MqttException e) {
  // TODO Auto-generated
  catch block
  e.printStackTrace();
  }
  }

  /**
  * 简单回调函数,处理client接收到的主题消息
  * @author pig
  *
  
  */
  class SimpleCallbackHandler implements MqttSimpleCallback{

  /**
  * 当客户机和broker意外断开时触发
  * 可以再此处理重新订阅
  
  */
  @Override
  public void connectionLost() throws Exception {
  //
  TODO Auto-generated method
  stub
  System.out.println("客户机和broker已经断开");
  }

  /**
  * 客户端订阅消息后,该方法负责回调接收处理消息
  */
  @Override
  public void
  publishArrived(String topicName, byte[] payload, int Qos, boolean retained)
  throws Exception {
  // TODO Auto-generated method
  stub
  System.out.println("订阅主题: " +
  topicName);
  System.out.println("消息数据: " + new
  String(payload));
  System.out.println("消息级别(0,1,2): " +
  Qos);
  System.out.println("是否是实时发送的消息(false=实时,true=服务器上保留的最后消息): " +
  retained);
  }
  
  }
  
  /**
  * 高级回调
  * @author pig
  
  *
  */
  class AdvancedCallbackHandler implements MqttSimpleCallback{

  @Override
  public void connectionLost() throws Exception {
  //
  TODO Auto-generated method stub
  
  }

  @Override
  public void publishArrived(String arg0, byte[] arg1, int
  arg2,
  boolean arg3) throws Exception {
  // TODO Auto-generated
  method stub
  
  }
  
  }
  
  /**
  * @param args
  
  */
  public static void main(String[] args) {
  // TODO Auto-generated
  method stub
  new SubscribeClient("" + i);

  }

  }

  broker服务器,MQTT的jar包,记得下载啊,没有就消息我咯~

  到这里,如果完成IBM的MQTT协议实现push消息的实例的,
  都会有个问题,好像没考虑到安全问题,如果客户端连上来作乱怎么办呢?

  上面用的broker时rsmb的,mqtt的简单服务器。
  IBM已经推出了MQTT V3.1版本,已经加入了安全验证机制,不要怕啦。

  转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
华硕X205TABIOS里launchcsm这个选项怎么找 朋友在一起,本来想着相互花钱不要计较那么多的,结果对方却老是想着比... 别人叫你请他吃东西,那他是不是不讨厌你。算是给你机会吗?? 哪种乌冬面比较好吃 ...膳,你小时候最爱吃那儿的豌豆黄儿。还记得那回我带你去北海吗... 苍梧鸟是什么意思? 右手五指受伤其中小指无名指各截掉一节可评几级伤残 ...桡骨骨折伤残鉴定怎么算呢,是左手的算左手的右手算右手,还是一起算... 工伤伤残鉴定中,对右手左手有区别吗? 车子出了事故,4s店在维修合同上写的交车日期,如果4s店超出预订时间交车... eclipse点运行出现这个框框什么意思? QQ空间里手机像册是所有人可见怎样才能改成请回答问题可见呢 我想买一个笔记本电脑,有没有什么推荐! 笔记本电脑购买须知74 适合什么脸型图片 据说六种脸型留外翘短发最好看 冷冻食品放多长时间可以吃 台风“小犬”来袭, 将对东南海域及闽粤台产生较大风雨影响 无限责任,无限连带责任,有限责任有何区别1 第一个证实大气压强存在的实验 苹果笔记本电脑可以放光盘吗74 生命科学实验,真正证实某一事件发生的原因的方法是什么? 长脸适合什么样了短发图片 手机QQ空间如何设置评论的回复权限 什么是连带责任和无限连带责任?举个承担这两种责任的例子。谢谢...2 关于《经济法概论》“无限连带责任”和“连带无限责任”有什么区...6 Eclipse打开出现这个界面什么意思?2 eclipse按了调试后出现这个,是什么意思?? eclipse中运行出现以下提示错误,是什么意思 哪项实验证实了人际交往的必要性 怎么设置手机QQ空间内的评论回复权限 c#怎么增加mqtt library 我是医疗设备应用技术大专毕业学生,可以报读其他专业本科吗? 大家好,我是一名大专生,现在准备报名自考本科,有以下专业可以... 微众银行提前还款后期账户多出款是利息吗 男主是冷酷学霸,女主是调皮学渣的校园小说有?39 如何设置手机QQ空间评论的回复权限 生黄芪20克,白术10克,防风5克,水煎代茶饮.功用是什么?47 黄芪 白术 防风这三种药起什么作用?210 帮忙选本本1 举例说明有限责任、无限连带责任、无限责任7 个人合伙与合伙企业在合伙人入伙、退伙时承担的法律责任一样么?...5 普通合伙人对合伙企业债务承担无限连带责任,对外承担债务分配比... 无限责任和无限连带责任一样吗?226 一本军婚小说,女主从小在男主家长大,男主是个军人,男主一家都... 黄芪,白术,黄精,防风在一起能不能提高免疫力 黄芪白术防风有什么功效15 过敏体质喝生黄芪,炒白术,防风能治吗2 中药放久了还能用吗?买来后放了半年了,有黄芪,白术,附子,防...5 QQ怎么设置对方必须回答问题才能加为好友? QQ空间回复权限设置在哪