Android开发笔记之《远程控制(MQTT|mosquitto) && (ProtocalBuffer | GRPC)》
Android推送方案分析(MQTT/XMPP/GCM): http://www.open-open.com/lib/view/open1410848945601.html
MQTT官网: http://mqtt.org/
MQTT协议简记: http://www.cnblogs.com/caca/p/mqtt.html
OSChina grpc document : http://doc.oschina.net/grpc?t=56831
高手对MQTT的理解: http://www.cnblogs.com/leeying/p/3791077.htm
高手对MQTT的经验之谈: http://www.blogjava.net/yongboy/archive/2015/01/11/422172.html
MQTT是IBM开发的一个即时通讯协议。MQTT是面向M2M和物联网的连接协议,采用轻量级发布和订阅消息传输机制。Mosquitto是一款实现了 MQTT v3. 协议的开源消息代理软件,提供轻量级的,支持发布/订阅的的消息推送模式,使设备对设备之间的短消息通信简单易用。 若初次接触MQTT协议,可先理解以下概念:
【MQTT协议特点】——相比于RESTful架构的物联网系统,MQTT协议借助消息推送功能,可以更好地实现远程控制。
【MQTT协议角色】——在RESTful架构的物联网系统,包含两个角色客户端和服务器端,而在MQTT协议中包括发布者,代理器(服务器)和订阅者。
【MQTT协议消息】——MQTT中的消息可理解为发布者和订阅者交换的内容(负载),这些消息包含具体的内容,可以被订阅者使用。
【MQTT协议主题】——MQTT中的主题可理解为相同类型或相似类型的消息集合 默认会监听一下端口:
: MQTT, 不加密
: MQTT, 加密
: MQTT, 加密, 客服端需要验证
: MQTT 通过WebSockets, 不加密
mosquitto ubuntu下编译和安装
Mosquitto的安装、配置、测试 (** 包含压力测试方法 **): http://blog.csdn.net/skykingf/article/details/46459857 先到官网 http://mosquitto.org/download/
咱们下载最新的 包:http://mosquitto.org/files/source/mosquitto-1.4.8.tar.gz
切换到~,执行 wget http://mosquitto.org/files/source/mosquitto-1.4.8.tar.gz
然后 chmod mosquitto-1.4..tar.gz
然后 tar -zxf mosquitto-1.4..tar.gz
cd mosquitto-1.4.
然后执行 make
可能会找不到 uuid头文件,
sudo apt-get install uuid-dev
然后 进行make
sudo make install
安装完毕后
在~目录下输入:mos 然后tab键按2下出现:
mosquitto mosquitto_passwd mosquitto_pub mosquitto_sub 备注:在执行 mosquit的时候可能会出现找不到 so:
sudo cp /usr/local/lib/libmosquitto.so.
开启MQTT:
$ mosquitto start
停止MQTT:
$ mosquitto stop
查看MQTT状态:
$ mosquitto status
查看监听的端口:
$ netstat -anplt | grep 1883
测试下,
$ mosquitto_sub -h test.mosquitto.org -t "#" -v
mosquitto测试
测试:
一、开起第一个终端窗口,直接运行mosquitto即可: 二、开启另一个终端窗口,运行订阅程序mosquitto_sub:
注意:消息推送的发布和订阅要有主题,选项[-t] 主题,即:
mosquitto -t 主题
如需指定用户名称则加选项[-i] 用户名,即:
mosquitto_sub -t 主题 -i 订阅端 三、开启第三个终端窗口,运行发布端程序mosquitto_pub:
指定消息推送的主题,发布端用户名和消息:
mosquitto_pub -t 主题1 -i 发布端 -m 你好
*注意:如果消息中间有空格则消息要已单引号括起来。
mosquitto_pub -t 主题1 -i 发布端 -m '我是发布端,你好。'
这时候在在开启mosquitto_sub -t mqtt的终端就会出现: 测试结束。
paho android client : https://www.eclipse.org/paho/clients/android/
Android paho SDK && Service && Demo download : https://repo.eclipse.org/index.html#nexus-search;quick~org.eclipse.paho.android.service
org.eclipse.paho.client.mqttv3
org.eclipse.paho.android.service
Android开发笔记之《远程控制(MQTT|mosquitto) && (ProtocalBuffer | GRPC)》的更多相关文章
- Android开发笔记之《Window下安装Ubuntu双系统,Grub无法显示Window选项》
解决方法是: 在terminal里面输入: sudo update-grub 会找到windows的grub 重启电脑就可以了.
- Windows 下安装 Ubuntu 双系统(更新)
Windows + Ubuntu 16.04 ---> 双系统 前言:本篇文章是对之前文章的更新,更新的主内容是把原来用手机拍摄的图片换成了虚拟机的截图,以及对磁盘划分的新的见解和一些使用感受, ...
- 怎样在Win10下安装ubuntu双系统
Win10系统下安装ubuntu系统 安装前准备: 概念 在动手之前,一定要先了解双系统.系统引导.分区这3个概念,这样才能理解安装步骤,应对安装过程中的意外情况. 双系统 双系统就是开机之后,会有一 ...
- win8下安装ubuntu双系统
终于成功在win8下安装成功ubuntu13.10, 安装方法来源于http://forum.ubuntu.org.cn/viewtopic.php?t=446557 下面的文件是该楼主的将安装ubu ...
- [Linux]三种方案在Windows系统下安装ubuntu双系统(转)
在学习linux的过程中,ubuntu无疑是初学者的最佳选择. 下面来列举给Windows系统安装ubuntu双系统的三种方法. 一.虚拟机安装(不推荐) 使用工具:Vmware 如果不是因为迫不得已 ...
- 【学习总结】win7下安装Ubuntu双系统的日常
参考文献 1 - [双系统中删除linux(win7适用) ] 2 - [win7(32位)U盘安装.卸载ubuntu(64位)双系统] 3 - [Windows下安装Ubuntu 16.04双系统] ...
- win7下安装ubuntu双系统的方法及心得体会(ps:要死好几回的节奏)
1.win7下安装ubuntu系统后,可以很好进入ubuntu系统 但是进不去win7,开机有win7选项,但是选择后不管用 方法思路:各种修复win7的mbr 我的问题是:在winpe中发现,根本看 ...
- Win7下安装Ubuntu双系统常见问题
[转自己以前的文章] 导航: ● win7下硬盘安装ubuntu常见问题 ● win7下u盘安装ubuntu常见问题 吐槽: Ubuntu的安装花了我将近15个小时,网上常见的.不常见的问题基本我都 ...
- 学习笔记42—Win7下安装Linux双系统
1.下载Linux镜像:http://mirrors.163.com/ubuntu-releases/18.04.1/ 方法一: 1.用软通牒软件将Linux的镜像写入空的优盘中, 具体如下: 1) ...
- 三种方案在Windows系统下安装ubuntu双系统
一.虚拟机安装(不推荐) 使用工具:Vmware 如果不是因为迫不得已,比如Mac OS对硬件不兼容,Federa安装频繁出错,各种驱动不全等等,不推荐使用虚拟机安装. 个人感觉这是一种对操作系统的亵 ...
随机推荐
- MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)的真正原因
在博客Linux mysql 5.6: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: N ...
- Linux挂载卸载光盘&实践
在Linux下有时候需要挂载光盘,拷贝文件或安装系统,例如拷贝Redhat操作系统镜像文件等.下面介绍一下在Linux系统下挂载.卸载光盘的方法. 在Linux系统中,每一个物理设备都可以看做是一个文 ...
- xp_sendmail: 由于邮件错误 0x80004005 而失败
今天收到一封邮件说我们的一台SQL SERVER 2000服务器发送邮件有问题.我测试中发现了如下错误: exec xp_sendmail 'Konglb@esquel.com','hello, 12 ...
- SQLite使用(一)&&选择表类型
在SQLite中,主要有两种表类型,带rowid的表和不带rowid的表.我们利用create table 建一张表,默认都会有一个隐含名字为rowid的主键,暂且称带rowid的表为普通表.如果建表 ...
- 不死僵尸木马lpt7.asp.asp与lpt5.cnzzz.asp的删除方法
1. Dos命令 我们知道Windows下是不能以“aux|prn|con|nul|com1|com2|com3|com4|com5|com6|com7|com8|com9|lpt1|lpt2|lpt ...
- 使用Navicat连接Oracle数据时的一些问题,连接时错误:ORA-28547,新建用户后连接时错误:ORA-01017
发现Navicat作为一款连接数据库的工具确实很好用,可视化的界面看着舒服很多,下面说说我今天在连接Oracle数据库时的一些问题: 1.安装好Oracle后直接用Navicat是连接不上的,会出现如 ...
- jQuery 3.0 的 setter/getter 模式
jQuery 的 setter/getter 共用一个函数,通过是否传参来表明它是何种意义.简单说传参它是 setter,不传它是 getter. 一个函数具有多种意义在编程语言中并不罕见,比如函数重 ...
- Redis3 本地安装集群的记录
引用CSDN文章 环境 centos6.7 目标 redis 三主三从的集群 step 1 编译,如果出错,则根据提示安装依赖 tar -zxvf redis-3.0.0.tar.gz mv redi ...
- <总结>delphi WebBrowser控件的使用中出现的bug
Delphi WebBrowser控件的使用中出现的bug: 1.WebBrowser.Visible=false:Visible属性不能使WebBrowser控件不可见,暂时用 WebBrowse ...
- [WPF系列]-高级部分 Shadowed TextBox
Download Solution ShadowedTextBoxExample.zip (70.3 KB) Usage <local:ShadowedTextBox Label="F ...