前言
由于mqtt就之前智能家居项目用过,为了方便以后回顾,避免重复造轮便记录下学习中摸索的过程。为了研究MQTT该次选择了Apache-Apollo提供的broker来进行研究,其次该网站也可以了解mqtt相关的一些特点。详情
其中整理了一个凌乱的demo以便日后回忆。
目录
JAVA_HOME配置
参考文章Mac配置JAVA_HOME
这里就不赘述了
搭建Baoker
鉴于Apache-apollo较之Mosquitto而言比较方便与直观,该次broker决定用Apache-apollo来作为Mqtt的broker;
PS:该文这针对Mac其他系统请去官方详细了解
下载Apollo
此处由于之针对自己macbook而言选择OS X版本下载
将下载好的文件解压到适当的目录(最好单独新建一个方便后续整理)。解压后会apache-apollo-xxx文件夹,该文件夹默认为环境变量${APOLLO_HOME};
-
接下来创建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 临时文件
-
接下来运行我们的broker
cd MyBroker(3创建的文件夹) apollo-broker run
- 由于apollo提供了可视化web界面(这也就是我选择他的原因),我们在safari中输入
http://127.0.0.1:61680/(http访问) 或者 https://127.0.0.1:61681/(https访问,可用于研究mqtt+ssl)输入用户名密码即可登录(默认用户名:admin 密码:password)
至此属于我们自己的Broker就算搭建完成了
体验Mqtt
再一次进入初始解压目录中,打开/examples 其中有一些简单客户端。我们打开其中的mqtt/websocket/index.html即可 点击 connect 后回到broker的可视化观测界面我们就能够看到我们刚刚建立的链接,以及发布的主题(Topic)
提供一个供参考的iOS-MQTT例子,由于一些原因删除了很多东西但可以使用,以及去除ssl相关部分:https://github.com/Maoyis/Apollo-mqtt.git。
**fkl为发布Topic,ios为订阅topic **
进一步开发看你想用哪一种语言咯,mqtt个人感觉在弱网络环境下进行实时通讯是一个绝佳选择(例如被用于智能家居上)
** ps: **由于初次使用简书分享自己,写的不太好请多见谅。欢迎讨论并给予建议。