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安装频繁出错,各种驱动不全等等,不推荐使用虚拟机安装. 个人感觉这是一种对操作系统的亵 ...
随机推荐
- Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理3
首先在webconfig中加入下面这句代码,这个主要是用来生成数据库的连接字符串 <connectionStrings> <add name="AuthorDesignCo ...
- (转)tomcat进程意外退出的问题分析
节前某个部门的测试环境反馈tomcat会意外退出,我们到实际环境排查后发现不是jvm crash,日志里有进程销毁的记录,从pause到destory的整个过程: org.apache.coyote. ...
- 详解Python中的循环语句的用法
一.简介 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性.须重要理解,if.while.for以及与它们相搭配的 else. elif.break.continue和pass语句 ...
- C#按位操作,直接操作INT数据类型的某一位
/// <summary> /// 根据Int类型的值,返回用1或0(对应True或Flase)填充的数组 /// <remarks>从右侧开始向左索引(0~31)</r ...
- centos yum update kernel
1.查看当前kernel版本 uname -r 2.查看已安装版本 rpm -q kernel 3.查看可升级kernel版本 yum list kernel 4.升级kernel版本 yum upd ...
- 报表开发工具Finereport移动端app js接口列表【全】
应用报表工具Finereport的开发人员会发现其移动端app 同样也推出了很多js接口,那这些接口到底有多少,其移动端又有哪些地方支持调用js,这些接口具体又该如何调用呢.根据我平时的开发经验,给大 ...
- Android(Linux)控制GPIO方法二
前文<Android(Linux)控制GPIO的方法及实时性分析>主要使用Linux shell命令控制GPIO,该方法可在调试过程中快速确定GPIO硬件是否有问题,即对应的GPIO是否受 ...
- UVALive 4670 Dominating Patterns --AC自动机第一题
题意:多个模板串,一个文本串,求出那些模板串在文本串中出现次数最多. 解法:AC自动机入门模板题. 代码: #include <iostream> #include <cstdio& ...
- Metasploit爆破tcpwrapped服务
转自:http://www.mamicode.com/info-detail-1653722.html 一.利用nmap工具扫描目标主机 1.1 使用nmap命令对目标主机进行扫描. 1.2 在终端中 ...
- sqlmap常用技巧
http://nanshihui.github.io/2016/02/25/sqlmaptips/