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安装频繁出错,各种驱动不全等等,不推荐使用虚拟机安装. 个人感觉这是一种对操作系统的亵 ...
随机推荐
- JavaScript 省市级联效果
JavaScript 省市级联效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- mysql权限与安全
一.MySQL权限系统通过两个阶段进行认证: (A) 对用户进行身份认证,IP地址和用户名联合, (B) 对合法用户赋予相应权限,权限表在数据库启动的时候载入内存中. 二.在权限的存取过程中,会用到& ...
- Oracle索引梳理系列(五)- Oracle索引种类之表簇索引(cluster index)
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- 使用 python 收集获取 Linux 系统主机信息
使用 python 代码收集主机的系统信息,主要:主机名称.IP.系统版本.服务器厂商.型号.序列号.CPU信息.内存等系统信息. #!/usr/bin/env python #encoding: u ...
- WPF 提示框、确认框、确认输入框
1.提示框 分为提示.异常.失败.成功几种类型 方法: /// <summary> /// 弹出提示 /// 标题:提示 /// </summary> /// <para ...
- mysql 主从复制配置
环境:已经在centos下安装好mysql,安装参考:http://www.cnblogs.com/bookwed/p/5896619.html,安装好主数据库后,可以克隆一份,注意修改ip等. 19 ...
- redis 源码阅读 内部数据结构--字符串
redis的内部数据结构主要有:字符串,双端链表,字典,跳跃表. 这里主要记录redise字符串的设计.相关的源码位于:src/sds.h 和 src/sds.c. 一 字符串 sds的结构体 s ...
- PKCS#1规范阅读笔记1--------基本概念
规范中有很多数学相关的推演和计算,并不打算在这里介绍,主要介绍一下相关的计算流程及最终的签名结果. 算法可以分为:对称算法和非对称算法两大类.对称算法加密和解密都用的是同一个密钥:而非对称算法却是有一 ...
- 【小白的CFD之旅】11 敲门实例【续】
主要内容: 接上文[小白的CFD之旅]10 敲门实例 2.4 Materials设置2.5 Cell Zone Conditions2.6 Boundary Conditons2.7 Dynamic ...
- Web报表工具FineReport中JavaScript的使用
报表软件FineReport采用的是jQuery v1.9.2框架,jQuery是一个快速的,简洁的JavaScript库,能让用户更方便地处理HTML documents.events,实现动画效果 ...