美文网首页
iOS MQTTClient使用记录

iOS MQTTClient使用记录

作者: 烟雨酱南 | 来源:发表于2020-04-02 16:38 被阅读0次

MQTT是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议

MQTTClient Cocoapods安装

pod 'MQTTClient'

1.连接

self.manager = [[MQTTSessionManager alloc]init];
    self.manager.delegate = self;
    [self.manager connectTo:@"地址" port:@"端口号" tls:NO keepalive:60 clean:YES auth:YES user:nil pass:nil will:NO willTopic:nil willMsg:nil willQos:(MQTTQosLevelAtMostOnce) willRetainFlag:NO withClientId:nil securityPolicy:nil certificates:nil protocolLevel:(MQTTProtocolVersion311) connectHandler:^(NSError *error) {
        if (error == nil) {
            NSLog(@"MQTT连接成功");
        }
    }];
    //观察连接状态
    [self.manager addObserver:self forKeyPath:@"state" options:(NSKeyValueObservingOptionNew) context:nil];

2.连接状态

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context{
    switch (self.manager.state) {
        case MQTTSessionManagerStateClosed:
            NSLog(@"MQTT&&&&&&&&&&&&&&closed");
            break;
        case MQTTSessionManagerStateClosing:
            NSLog(@"MQTT&&&&&&&&&&&&&&closing");
            break;
        case MQTTSessionManagerStateConnected:
            NSLog(@"MQTT&&&&&&&&&&&&&&connected");
            break;
        case MQTTSessionManagerStateConnecting:
            NSLog(@"MQTT&&&&&&&&&&&&&&connecting");
            break;
        case MQTTSessionManagerStateError:
            NSLog(@"MQTT&&&&&&&&&&&&&&error");
            break;
        case MQTTSessionManagerStateStarting:
            NSLog(@"MQTT&&&&&&&&&&&&&&starting");
            break;
            
        default:
            break;
    }

3.订阅channel

self.manager.subscriptions = @{@"指定的channel":[NSNumber numberWithInt:MQTTQosLevelAtMostOnce]};

4.发送消息

[self.manager sendData:data topic:@"指定的channel" qos:(MQTTQosLevelAtMostOnce) retain:NO];

5.收到MQTT消息

- (void)handleMessage:(NSData *)data onTopic:(NSString *)topic retained:(BOOL)retained{
}

具体使用可以查看GitHurb说明MQTT-Client-Framework.

相关文章

  • iOS MQTTClient使用记录

    MQTT是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品...

  • iOS MQTT 应用 使用MQTTClient

    直接上代码,最好写一个单例中去实现 需要特别注意的是 transport.host 后边的地址IP,前面不要加ht...

  • MQTTClient的使用介绍

    开篇 最近在使用MQTTClient实现一个类似于消息推送的服务,说实话,真没怎么使用过MQTTClient,也不...

  • iOS --- MQTTClient

    ----- 更新 目前使用了 MQTTSessionManage 类 来代替之前的 MQTTSession --...

  • iOS MQTTClient

    1、简介: MQTT 是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以...

  • iOS --- MQTTClient

    前言 由于极光和环信的推送限制我们使用MQTT传输协议来自己推送 协议介绍 https://www.fenxian...

  • iOS MQTTClient

    什么是MQTT MQTT(消息队列遥测传输),基于发布/订阅的消息协议。MQTT工作在TCP/IP协议族上,是为硬...

  • FuseSource MqttClient使用

    之前使用过Eclipse Paho附上文章链接Eclipse Paho 实现Android推送 讲述一下两者的使用...

  • 高性能、高稳定性的跨平台MQTT客户端

    开源地址 https://github.com/jiejieTop/mqttclient mqttclient 一...

  • iOS MQTTClient使用KVO监测Session状态

    最近在用MQTT协议做iOS端,感觉还是很简单的,但是网上可参考的资源真是少的可怜,都是互相抄。 在监测sessi...

网友评论

      本文标题:iOS MQTTClient使用记录

      本文链接:https://www.haomeiwen.com/subject/zrgxphtx.html