iOS-MQTT开发之Apollo-Broker搭建

前言

由于mqtt就之前智能家居项目用过,为了方便以后回顾,避免重复造轮便记录下学习中摸索的过程。为了研究MQTT该次选择了Apache-Apollo提供的broker来进行研究,其次该网站也可以了解mqtt相关的一些特点。详情
其中整理了一个凌乱的demo以便日后回忆。

目录

  • 前言
  • JAVA_HOME配置
  • 搭建Broker
  • 体验Mqtt

JAVA_HOME配置

参考文章Mac配置JAVA_HOME
这里就不赘述了

搭建Baoker

鉴于Apache-apollo较之Mosquitto而言比较方便与直观,该次broker决定用Apache-apollo来作为Mqtt的broker;

PS:该文这针对Mac其他系统请去官方详细了解

下载Apollo

  1. 此处由于之针对自己macbook而言选择OS X版本下载

  2. 将下载好的文件解压到适当的目录(最好单独新建一个方便后续整理)。解压后会apache-apollo-xxx文件夹,该文件夹默认为环境变量${APOLLO_HOME};

  3. 接下来创建broker,有两种方式

     cd 放置broker路径(建议就放在2创建的文件夹中方便以后查看或整理)
     方法一:通过环境变量 (相对路径)创建
     ${APOLLO_HOME}/bin/apollo create MyBroker
     //上面是通过环境变量直接创建,如果失败说明之前操作有些问题导致环境变量配置失败。
     方法二:将apollo拖入终端用绝对地址 创建
     xxx/bin/apollo create MyBroker #在当前目录下生成一个mqtt_test目录,其下面包含:
     
     *****运行结果*******
     Creating apollo instance at: MyBroker
     Generating ssl keystore...
    
     You can now start the broker by executing:  
      "/Users/lqx/Desktop/未命名文件夹/MyBroker/bin/apollo-broker" run
    
     Or you can run the broker in the background using:
      "/Users/lqx/Desktop/未命名文件夹/MyBroker/bin/apollo-broker-service" start
    

    PS:此处需要java环境,参考上文JAVA_HOME配置

    成功后文件目录大致应该是这个样子:

    bin 运行脚本

    etc 环境配置

    data 存储持久化数据

    log 运行日志

    tmp 临时文件

  1. 接下来运行我们的broker

    cd MyBroker(3创建的文件夹)
    apollo-broker run
    
iOS-MQTT开发之Apollo-Broker搭建_第1张图片
apollo-run-result.png
  1. 由于apollo提供了可视化web界面(这也就是我选择他的原因),我们在safari中输入
    http://127.0.0.1:61680/(http访问) 或者 https://127.0.0.1:61681/(https访问,可用于研究mqtt+ssl)输入用户名密码即可登录(默认用户名:admin 密码:password)
iOS-MQTT开发之Apollo-Broker搭建_第2张图片
屏幕快照 2017-05-16 下午8.34.32.png

至此属于我们自己的Broker就算搭建完成了

体验Mqtt

再一次进入初始解压目录中,打开/examples 其中有一些简单客户端。我们打开其中的mqtt/websocket/index.html即可 点击 connect 后回到broker的可视化观测界面我们就能够看到我们刚刚建立的链接,以及发布的主题(Topic)

iOS-MQTT开发之Apollo-Broker搭建_第3张图片
屏幕快照 2017-05-16 下午8.35.21.png

提供一个供参考的iOS-MQTT例子,由于一些原因删除了很多东西但可以使用,以及去除ssl相关部分:https://github.com/Maoyis/Apollo-mqtt.git。

**fkl为发布Topic,ios为订阅topic **

iOS-MQTT开发之Apollo-Broker搭建_第4张图片
Simulator Screen Shot 2017年5月16日 下午8.42.39.png

进一步开发看你想用哪一种语言咯,mqtt个人感觉在弱网络环境下进行实时通讯是一个绝佳选择(例如被用于智能家居上)

** ps: **由于初次使用分享自己,写的不太好请多见谅。欢迎讨论并给予建议。

你可能感兴趣的:(iOS-MQTT开发之Apollo-Broker搭建)