`
ipython
  • 浏览: 293974 次
  • 性别: Icon_minigender_1
  • 来自: 佛山
社区版块
存档分类
最新评论

mosquitto 基于MQTT消息推送

 
阅读更多

mosquitto note
基于MQTT消息推送[https://mosquitto.org]

目的

* 要解决的问题是:给Android手机做消息推送
* 不使用第三方的SDK,如极光推送,百度云推送,信鸽 这些都不能用
* 自已搭建消息推送后台

模块

* 代理端(中转消息,守护进程) mosquitto
* 发送消息客户端 mosquitto_pub
* 接收消息客户端 mosquitto_sub
* 管理密码文件  mosquitto_passwd

Ubuntu安装

* sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
* sudo apt-get update 
* sudo apt-get install mosquitto   mosquitto-clients
* 开机启动 chkconfig mosquitto on

测试

* 先启动服务进程    mosquitto -d
* 订阅某个频道(news)的消息(监听)  mosquitto_sub -t news
* 发送消息(hello)到某个频道(news)    mosquitto_pub -t news -m "hello"
* 可以观察到当mosquitto_pub之后,可以在mosquitto_sub看到刚才发送的消息

配置

* 配置文件路径 /etc/mosquitto/mosquitto.conf
* 启动服务进程mosquitto,除了可能用命令行参数,还要以通过配置文件,配置文件更为详细。
* 可以指定ip地址和端口,还可以使用用户名和密码
* 可以添加加密码证书

案例

使用密码

* 创建只读用户user1和可写用户user2和密码都为user1234
    ** mosquitto_passwd -c /etc/mosquitto/pawd user1     // -c 表示新增一个文件,如果创建第二个用户,不需要-c
    ** mosquitto_passwd /etc/mosquitto/pawd user2 
* 修改配置文件,不允许匿名用户,指定存储用户名和密码的文件路径,和用户读写权限的文件
    ** 创建自己的配置文件, touch /etc/mosquitto/conf.d/my.conf
    ```
        allow_anonymous false
        password_file /etc/mosquitto/pawd
        acl_file /etc/mosquitto/acl
    ```
    ** 创建用户读写权限的文件/etc/mosquitto/acl
    ```
        user user1
        topic read news

        user user2
        topic write news
    ```
* 测试
    ** sudo service mosquitto restart
    ** mosquitto_sub -t news -u user1 -P user1234
    ** mosquitto_pub -t news -m "hello" -u user2 -P user1234
    
分享到:
评论
1 楼 Yunba云巴 2016-12-05  
我们(https://yunba.io/)是基于MQTT协议实现的实时通信系统,支持iOS、Android消息推送。

实现Android推送方面,客户端在集成我们的 Android SDK后,服务端便可通过 SDK 或使用 RESTful API,向 Android 客户端发消息。另外,Android推送已经集成华为、小米第三方推送。

考虑到消息的实时性,我们Android SDK 会启动一个后台的 Service,创建并保持到云巴服务器的长连接,从而保证了消息推送的实时性。

同样为了保证消息能够被送达,我们 SDK 支持 离线消息 的功能,可保证消息送达客户端。

也就是说,在推送消息时,如果客户端当前不在线,消息将暂存在云巴服务器上(多达 50 条,长达 15 天)。 当客户端上线并成功连接到云巴的服务器后,服务器会把离线消息推送给该客户端。客户端成功接收后,服务器才会删除保存的离线消息。

iOS 推送同理,除此以外,我们的 SDK 集成了 APNs,这样开发者就无需开发与 APNs 对接的模块,也不必自己负责 Device Token 的更新。

在消息推送机制方面,我们支持频道(Topic)和别名(Alias)两种消息发布方式,通过频道(Topic)可以进行『一对多』的消息发布,而通过别名(Alias)可以进行『一对一』的消息发布。

相关推荐

    基于RocketMQ的MQTT消息推送服务器分布式部署方案.pdf

    伴随着互联网的飞速发展, 特别是在近几年中, 移动... 本文介绍了MQTT 协议与RocketMQ 的这种开源项目的应用, 并通过RocketMQ 与Mosquitto 相结合的方式, 实现了一种基于RocketMQ 的MQTT 消息推送服务器及其分布式部署.

    windows编译的mosquitto(mqtt)

    【mosquitto与MQTT简介】 mosquitto是一款开源的MQTT消息...总之,mosquitto在Windows上的编译和使用为开发者提供了一种方便的方式来构建基于MQTT协议的应用,尤其是在物联网场景下,能够轻松实现设备间的高效通信。

    Android MQTT消息推送

    本文将深入探讨Android平台上实现MQTT消息推送的相关知识点。 ### MQTT协议简介 MQTT协议基于TCP/IP协议栈,采用发布/订阅模型。在这个模型中,客户端可以作为发布者发送消息,也可以作为订阅者接收消息。消息主题...

    基于MQTT的安卓消息推送php服务端源码+安卓端源码.zip

    标题中的“基于MQTT的安卓消息推送php服务端源码+安卓端源码.zip”表明这是一个包含完整开发项目的压缩包,项目涉及了Android客户端和PHP服务端,主要功能是实现基于MQTT协议的消息推送。MQTT(Message Queuing ...

    MQTT消息推送

    4. **消息处理**:接收到推送消息后,根据业务逻辑进行处理,如显示通知、更新UI等。 5. **电池优化**:考虑Android系统的电池优化,合理配置服务的启动类型和唤醒锁,防止被系统暂停。 四、优化与安全 1. **SSL/...

    基于mqtt的推送服务器.pptx

    推送服务器通常使用MQTT协议来处理设备和应用程序之间的消息传递。例如,`Mosquitto`是一个流行的MQTT代理,它支持TCP和WebSocket连接。在集群环境中,可以配置多个Mosquitto实例以提高服务的可用性和性能。推送...

    mqtt协议推送服务器php

    本文将详细介绍如何使用PHP搭建MQTT推送服务器,并与Android客户端进行交互。 ### MQTT协议基础 1. **发布/订阅模型**:MQTT协议基于发布/订阅模型,客户端可以是发布者或者订阅者。发布者发送消息到特定的主题,...

    基于MQTT协议的消息推送服务器.pdf

    本文介绍了MQTT协议的基本内容和特点,以Mosquitto、Redis等开源项目为基础设计并实现了一个基于MQTT协议的消息推送服务器,能够对用户订阅的消息进行推送,同时还实现了用户身份验证、ACL权限检查、自动订阅话题、...

    Android mqtt协议 推送

    4. MQTT推送服务端: MQTT服务器有多种选择,例如Mosquitto、HiveMQ、EMQ X Broker等。这些服务端支持大规模并发连接,提供丰富的安全策略,如TLS加密、用户身份验证和访问控制。 5. Android MQTT推送实践: 在`...

    Android应用源码之基于MQTT的安卓消息推送php服务端源码+安卓端源码

    其次,PHP服务端源码send_mqtt.zip负责处理来自Android客户端的请求并推送消息。这部分可能包含以下功能: 1. **MQTT服务器连接**:服务端也需要使用PHP的MQTT库,如`php-mqtt/client`,建立到MQTT broker(如...

    安卓开发-基于MQTT的安卓消息推送php服务端源码+安卓端源码.zip

    本资源提供了一套完整的解决方案,包括PHP服务端源码和Android客户端源码,用于实现基于MQTT(Message Queuing Telemetry Transport)协议的消息推送系统。 MQTT是一种轻量级的发布/订阅消息传输协议,设计思想是...

    安卓Android源码——基于MQTT的安卓消息推送php服务端源码+安卓端源码.zip

    在安卓端实现MQTT推送通常会用到如Paho MQTT Android Client这样的库。客户端源码可能涵盖以下模块: 1. 初始化MQTT连接:配置MQTT连接参数,如服务器地址、端口、客户端ID,以及连接选项(如是否保持连接、超时...

    android Mqtt推送 源码

    - 订阅主题:使用`subscribe()`方法订阅感兴趣的话题,以便接收推送消息。 - 发布消息:在服务器端,使用PHP MQTT客户端向已订阅的主题发布消息。 - 处理接收的消息:在Android客户端,设置回调监听`...

    Android应用源码之基于MQTT的安卓消息推送php服务端源码+安卓端源码.zip

    此外,Android开发者还需要考虑在后台运行服务,确保即使在应用被关闭或手机屏幕熄灭时仍能接收到推送消息。 接着,我们转向PHP服务端。服务端主要负责处理来自Android客户端的连接请求,管理用户的订阅状态,并...

    安卓Android源码——基于MQTT的安卓消息推送php服务端源码+安卓端源码.rar

    通过学习和理解这个源码,开发者可以掌握如何在Android应用中集成MQTT推送服务,同时也能了解PHP在构建消息服务端的角色。这不仅有助于提升个人技能,还能为开发实时、高效的移动应用提供宝贵的经验。

    MQTT方式实现Android推送服务器端

    MQTT(Message Queuing Telemetry ...在实际开发中,需要结合Android客户端、服务器端和Web前端,通过MQTT协议实现消息的实时推送。同时,需要考虑网络条件、设备性能、电池寿命等因素,优化推送效率和用户体验。

Global site tag (gtag.js) - Google Analytics