protobuf&Mqtt
1.简单来说就是将Data扔mqtt,然后发送出去就行了!!!
成果展示
启动服务器
Demo演示
具体代码
CocoaPods导入需要的SDK
1.Protobuf是protobuf的依赖库
2.MQTTClient是一个开源的Mqtt库,包括链接,订阅,发布消息,接收消息等等(只要站在巨人肩膀上开发就好了,除非你是研发型的公司,需要自己去研发一套协议或者一套新的框架)。
pod 'Protobuf'
pod 'MQTTClient'
3.创建一个通讯管理类(管理链接,中断链接,接收和发送消息)
注意:这里仅作为展示,不做过多的处理,需要做成一个完整的项目还需要更多的东西
//
// MqttManager.h
// MQTTDemo
//
// Created by Avalanching on 2019/3/27.
// Copyright © 2019 Avalanching. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <MQTTClient/MQTTClient.h>
#import "MQTTUserInfo.h"
#import "MqttMessageBody.pbobjc.h"
typedef NS_ENUM(NSInteger, MQTTConnectionCode) {
MQTTConnectionCodeDidConnection
};
@protocol AVAMqttManagerDelegate <NSObject>
/**
@method sendMessageCallBackWithBool:message:
@abstrac 发送回调
@discussion 回调结果是否发送成功了
@param flag 发送结果
@param body 发送的信息
*/
- (void)sendMessageCallBackWithBool:(BOOL)flag message:(MqttMessageBody *)body;
/**
@method newMessageArrival:
@abstrac 收到新的信息
@discussion 收到信息的回调
@param message 发送的信息
*/
- (void)newMessageArrival:(MqttMessageBody *)message;
@end
@interface MqttManager : NSObject
// 登陆信息
@property (nonatomic, strong, readonly) MQTTUserInfo * userinfo;
// 终端连接回调
@property (nonatomic, copy, readonly) BOOL (^inte