Android 二维码被扫后接收通知(使用MQTT协议实现消息推送)

本文介绍了如何使用MQTT协议实现在Android上接收到二维码被扫后的支付通知。通过MQTT的发布/订阅模式,结合Mosquitto Broker,确保消息的可靠传递。在Android端,通过Eclipse Paho MQTT客户端进行测试,并提供了实现二维码支付通知的关键步骤和注意事项。
摘要由CSDN通过智能技术生成

现如今扫码付款和收款已经很便利了,比如超市买完东西付款时有两种方式 : 顾客可以出示付款码给收银员扫码收款,也可以由顾客扫描超市的收款码进行付款 。两种方式在付款完成后超市端会进行语音播报收到xx元。 前者收银员主动扫码,其使用的系统可以实时地收到付款反馈信息然后进行语音播报。后者顾客扫码付款则没有这么简单了,因为发起付款请求的是顾客端,收银端系统是不能实时地知道“我的二维码何时被扫了“,也就是说付款成功通知得由服务器推送过来,这里就涉及到了消息推送技术。

MQTT简介

MQTT (MQ Telemetry Transport)is a machine-to-machine (M2M)/“Internet of Things” connectivity protocol.
MQTT stands for MQ Telemetry Transport. It is a publish/subscribe, extremely simple and lightweight messaging protocol, designed for constrained devices and low-bandwidth, high-latency or unreliable networks. The design principles are to minimise network bandwidth and device resource requirements whilst also attempting to ensure reliability and some degree of assurance of delivery. These principles also turn out to make the protocol ideal of the emerging “machine-to-machine” (M2M) or “Internet of Things” world of connected devices, and for mobile applications where bandwidth and battery power are at a premium.
MQTT即MQ遥测传输协议,它是一个发布/订阅协议,非常简单和轻量级的消息传递协议,专为受限设备和低带宽、高延迟或不可靠的网络设计。设计原则是尽量减少网络带宽和设备资源需求,同时也试图确保可靠性和一定程度的交付保证。这些原则也使协议成为新兴的“机器对机器”(M2M)或“物联网”世界的理想连接设备,以及带宽和电池电力的移动应用程序。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。特性如下:
1、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;
2、对负载内容屏蔽的消息传输;
3、使用 TCP/IP 提供网络连接;
4、有三种消息发布服务质量:

  • qos为0: “至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
  • qos为1:“至少一次”,确保消息到达,但消息重复可能会发生。
  • qos为2:“只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。

5、小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;
6、使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。
MQTT官网
Android消息推送MQTT实战

MQTT Broker(代理服务器)

有很多开源的MQTT Broker代理服务器,参考MQTT Broker 选型进行Broker选型,下面简单介绍使用Mosquitto Broker。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值