ios MQTT协议的实际应用
1,创建单视图项目,pod search mqtt找到一个库,然后在项目目录下pod init 出Podfile
2,pod install 安装mqtt库
3,主要代码:
#import "MQTTClient.h"
设置<MQTTSessionDelegate>
//初始化一个传输类型的实例
MQTTCFSocketTransport *transport = [[MQTTCFSocketTransport alloc] init];
transport.host = @"localhost";
transport.port = 1883;
//创建一个任务
MQTTSession *session = [[MQTTSession alloc] init];
//设置任务的传输类型
session.transport = transport;
//设置任务的代理为当前类
session.delegate = self;
//设置登录账号
session.clientId = @"lichanghong";
BOOL isSucess = [session connectAndWaitTimeout:30]; //this is part of the synchronous API
if(isSucess){
//以下部分是订阅一个主题
[session subscribeToTopic:@"topic" atLevel:2 subscribeHandler:^(NSError *error, NSArray<NSNumber *> *gQoss){
if (error) {
NSLog(@"Subscription failed %@", error.localizedDescription);
} else {
NSLog(@"Subscription sucessfull! Granted Qos: %@", gQoss);
}
}];
}
//发送数据 this is part of the asynchronous API
[session publishAndWaitData:[@"hello" dataUsingEncoding:NSUTF8StringEncoding]
onTopic:@"topic"
retain:NO
qos:MQTTQosLevelAtLeastOnce];
//主动和服务端断开
[session disconnect];
//取消订阅主题
[session unsubscribeTopic:@"topic" unsubscribeHandler:^(NSError *error) {
}];
- (void)newMessage:(MQTTSession *)session data:(NSData *)data onTopic:(NSString *)topic qos:(MQTTQosLevel)qos retained:(BOOL)retained mid:(unsigned int)mid
{
NSLog(@"data=%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);
// NSLog(@"%@",[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]);
}
4,服务端(php在ubuntu16.04环境下的服务器)
0)安装了composer管理php包
1)composer init创建包配置文件composer.json
发现composer太难配置,弃之。。。。
简单测试方法:
1,http://www.open-open.com/lib/view/open1384352514336.html
2,http://www.codes51.com/article/detail_2674947.html
任选其一,推荐第二个。
ubuntu安装mqtt的ppa方法:
https://launchpad.net/~mosquitto-dev/+archive/ubuntu/mosquitto-ppa
php的无法运行起来,在ubuntu16.04找不到mosquitto.so,解决方案:
sudo pecl install Mosquitto-alpha
and created mosquitto.ini in
/etc/php5/mods-available/mosquitto.ini
and add this code
extension=mosquitto.so
ios MQTT协议的实际应用的更多相关文章
- 基于MQTT协议进行应用开发
官方协议有句如下的话来形容MQTT的设计思想: "It is designed for connections with remote locations where a "sma ...
- MQTT协议及推送服务(二)
MQTT简介 MQTT全称叫做Message Queuing Telemetry Transport,意为消息队列遥测传输,是IBM开发的一个即时通讯协议.由于其维护一个长连接以轻量级低消耗著称,所以 ...
- 采用MQTT协议实现android消息推送(2)MQTT服务端与客户端软件对比、android客户端示列表
1.服务端软件对比 https://github.com/mqtt/mqtt.github.io/wiki/servers 名称(点名进官网) 特性 简介 收费 支持的客户端语言 IBM MQ 完整的 ...
- Android实现推送方式解决方案 - 长连接+心跳机制(MQTT协议)
本文介绍在Android中实现推送方式的基础知识及相关解决方案.推送功能在手机开发中应用的场景是越来起来了,不说别的,就我们手机上的新闻客户端就时不j时的推送过来新的消息,很方便的阅读最新的新闻信息. ...
- MQTT协议通俗讲解
参考 Reference v3.1.1 英文原版 中文翻译版 其他资源 网站 MQTT官方主页 Eclipse Paho 项目主页 测试工具 MQTT Spy(基于JDK) Chrome插件 MQTT ...
- 物联网项目开发必读 深度分析MQTT协议优缺点
物联网并不仅仅是一种网络,而是一个新的生态环境,它描述的本质是越来越多的使用物品通过网络连接在一起并可使用单个或者多个的终端设备对它们进行各种控制和使用—当然,工业上的物联网通常连接到的石鼓传感器或者 ...
- 消息中间件技术 - 浅谈mqtt协议及其实现
作者:carter(佘虎),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 1.1概念 MQTT(MQ Telemetry ...
- MQTT 协议是个啥?这篇文章告诉你!
文章首发于我的公众号「程序员cxuan」,欢迎大家关注呀- 说到做到! 之前有位读者给我留言说想要了解一下什么是 MQTT 协议,顺便还把我夸了一把,有点不好意思啦. 那么读者的要求必须要满足啊,所以 ...
- 海鑫智圣:物联网漫谈之MQTT协议
什么是MQTT协议 MQTT(消息队列遥测传输协议)是IBM在1999年专门针对物联网等应用场景来制订的轻量级双向消息传输协议,它主要是为了解决物联网上使用到的设备的互相通信的问题,以及这些设备与后端 ...
随机推荐
- oracle group by placement可能导致错误结果的bug
Last week I’ve mentioned on Twitter that we ran into wrong result bug. We found workaround quickly b ...
- rman实验——测试备份压缩
oracle rman自带的备份压缩机制,可以有效的压缩备份的大小,降低磁盘的占用率.但是也会因为压缩而消耗更多的系统性能,和增加备份时间.现在就通过实验来看压缩和不压缩的区别. 进行不压缩全备 RM ...
- dijkstral改编
题意:给你包含n个点的连通图,每个点都有一个权值.给定起点和终点.问你起点到终点的最短路条数,并且输出路径最短且权值之和最大的一条路径. 思路:1.如何根据父节点更新子节点.x,y是父子节点.如果从起 ...
- linux基础之用户和组管理及权限
一.用户和组管理 相关配置文件 /etc/passwd: 用户名 : 密码占位符 : UID : GID : COMMENTS : 家目录 :默认shell /etc/group: 组名 : 组密码占 ...
- mysql57 centos7 使用
####### yum repository install #######mysql yum repo http://repo.mysql.com/wget http://repo.mysql.co ...
- [原]编译flightGear
参考:flightgear编译博客201705 flightGear是三维飞行仿真软件,这个款软件是开源的,我们尝试用其源码完整编译一遍这个工程,并使用它. 它用到里以下扩展库: 空气动力学库:JSB ...
- 在input中输入需要的数据,使用qrcode,点击生成二维码
话不多说直接上代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&quo ...
- Linux下Java环境安装
本节主要讲解Linux(Centos 6.5)下Java环境的安装 1. 卸载机器上默认安装的JDK 在Linux环境下一般会默认安装jdk,为了自己项目的开发部署,一般情况要重新装jdk,而且自己装 ...
- java poi excel操作 把第一列放到最后去
@Override public void adjustExcleColumnPosition(String filePath,int col) throws Exception{ File file ...
- python内置类型:列表,包括 list 和 tuple
列表list 是一种有序的集合 ,假定list的名字为class list的元素个数:len( class) 访问元素: a. 索引从0开始 b. 也可以使用[-1],[-2],[-3] 从后面 ...