MQTTClient 0.15.3

MQTTClient 0.15.3

测试已测试
Lang语言 Obj-CObjective C
许可 NOASSERTION
发布上次发布2019年11月

Klaas Pieter AnnemaChristoph KreyJosip Cavar维护。



MQTTClient 0.15.3

  • novastonemedia

MQTT-Client-Framework

Build Status codecov CocoaPods Version Platform

欢迎来到MQTT-Client-Framework

MQTT-Client-Framework是一个本地的Objective-C iOS库。它使用CFNetwork进行网络通信,使用CoreData进行持久化。它是MQTT 3.1.1的完整实现,并支持TLS。

您可以通过阅读介绍来了解有关框架的更多信息。

MQTT-Client-Framework已经与众多代理进行了测试

  • mosquitto
  • paho
  • rabbitmq
  • hivemq
  • rsmb
  • mosca
  • vernemq
  • emqtt
  • moquette
  • ActiveMQ
  • Apollo
  • CloudMQTT
  • aws
  • hbmqtt (仅支持MQTTv311,有限制)
  • aedes
  • flespi

用法

创建一个新的客户端并连接到代理

#import "MQTTClient.h"

MQTTCFSocketTransport *transport = [[MQTTCFSocketTransport alloc] init];
transport.host = @"test.mosquitto.org";
transport.port = 1883;
    
MQTTSession *session = [[MQTTSession alloc] init];
session.transport = transport;
[session connectWithConnectHandler:^(NSError *error) {
	// Do some work
}];

订阅一个主题

[session subscribeToTopic:@"example/#" atLevel:MQTTQosLevelExactlyOnce subscribeHandler:^(NSError *error, NSArray<NSNumber *> *gQoss) {
    if (error) {
        NSLog(@"Subscription failed %@", error.localizedDescription);
    } else {
        NSLog(@"Subscription sucessfull! Granted Qos: %@", gQoss);
    }
 }];

在您的MQTTSession代理中,添加以下代码以接收已订阅主题的消息

- (void)newMessage:(MQTTSession *)session data:(NSData *)data onTopic:(NSString *)topic qos:(MQTTQosLevel)qos retained:(BOOL)retained mid:(unsigned int)mid {
    // New message received in topic
}

向主题发布消息

[session publishData:someData onTopic:@"example/#" retain:NO qos:MQTTQosLevelAtMostOnce publishHandler:^(NSError *error) {
}];

如果您已有一个来自代理的自签名URL,如AWS IoT端点,请使用MQTTWebsocketTransporturl属性

MQTTWebsocketTransport *transport = [[MQTTWebsocketTransport alloc] init];
transport.url = @"wss://aws.iot-amazonaws.com/mqtt?expiry='2018-05-01T23:12:32.950Z'"

MQTTSession *session = [[MQTTSession alloc] init];
session.transport = transport;
[session connectWithConnectHandler:^(NSError *error) {
    // Do some work
}];

安装

CocoaPods

将以下内容添加到您的Podfile中

pod 'MQTTClient'

简写为

pod 'MQTTClient/Min'
pod 'MQTTClient/Manager'

Manager子规范包括MQTTSessionManager类。

如果您想通过WebSockets使用MQTT

pod 'MQTTClient/Websocket'

如果您想使用CocoaLumberjack进行日志记录(推荐)

pod 'MQTTClient/MinL'
pod 'MQTTClient/ManagerL'
pod 'MQTTClient/WebsocketL'

Carthage

进入您的Cartfile

github "novastone-media/MQTT-Client-Framework"

手动

使用Git子模块

  1. 将MQTT-Client-Framework作为git子模块添加到您的顶级项目目录中,或者简单地复制整个文件夹
  2. 找到MQTTClient.xcodeproj,并将其拖动到应用程序项目的文件导航器中。
  3. 在Xcode中,通过单击蓝色项目图标,然后选择侧边栏中的“Targets”标题下的“应用程序目标”,导航到目标配置窗口。
  4. 在“通用”面板下,转到“链接的框架和库”,并添加MQTTClient.framework

框架

  1. 下载MQTT-Client-Framework
  2. 编译它,你应该可以在“产品”组下找到MQTTClient.framework。
  3. 右击它,并选择“在Finder中显示”选项。
  4. 只需将MQTTClient.framework拖放到您的项目中

安全披露

如果您认为您已识别出MQTT-Client-Framework的安全漏洞,请向[email protected]报告,并不要将其发布到公开的问题跟踪器。

感谢

此项目最初由Christoph Krey编写。