/mpush-client-oc

Mpush Client Object-C

Primary LanguageObjective-CApache License 2.0Apache-2.0

一、此demo依赖AFNetworking、CocoaAsyncSocket、LFCGzipUtility 和rfi_reader四个三方框架

  • 1、afn 用于发送网络请求 和 监测网络变化
  • 2、CocoaAsyncSocket 用于建立socket连接
  • 3、LFCGzipUtility 用于压缩和解压缩数据
  • 4、rfi_reader 用于拼接数据

二、核心文件:MessageDataPacketTool

MessageDataPacketTool为该demo的核心文件  

此文件封装了 握手 握手响应 心跳 绑定 绑定ok 快速重连 AES加解密  http代理 http代理响应 ok error  等数据包 需要使用以上功能 只需调用MessageDataPacketTool 中的对应方法  方法返回值即为需要向服务端发送的数据

三、相应操作对应的方法

握手:   + (NSData *)handshakeMessagePacketData;
握手响应包:  + (IP_PACKET)handShakeSuccessResponesWithData:(NSData *)data;
握手响应包中的body:  + (HAND_SUCCESS_BODY) HandSuccessBodyDataWithData:(NSData *)body_data andPacket:(IP_PACKET)packet;
心跳: +(NSData *)heartbeatPacketData;
绑定: + (NSData *)bindDataWithUserId:(NSString *)userId;
绑定ok:   + (OK_MESSAGE) okWithBody:(NSData *)body;
快速重连:   + (NSData *)fastConnect;
AES加密:  + (NSData *) aesEncriptData:(NSData *)enData WithIv:(int8_t [])iv andKey:(int8_t [])key;
AES解密:   + (NSData *) aesDecriptWithEncryptData:(NSData *)encryptData withIv:(int8_t [])iv andKey:(int8_t[])key;
http代理:   + (NSData *)chatDataWithBody:(NSData *)messageBody andUrlStr:(NSString *)urlStr;
http代理响应: + (HTTP_RESPONES_BODY)chatDataSuccessWithData:(NSData *)bodyData;
处理收到的push消息:  + (id)processRecievePushMessageWithPacket:(IP_PACKET)packet andData:(NSData *)body_data;新的

四、使用方法:

   1、建立连接 (发送握手数据)    2、绑定用户 (发送绑定数据)    3、收发消息 (发送http代理数据、处理收到的push消息

使用注意:

1、需要更换与服务对应的 IP地址 和 MessageDataPacketTool.h文件中的pubkey(握手时RSA加密所需的公钥) 2、iOS10以上需要打开keychain Sharing的开关 -->在xcode的Ttarget中选中Capabilities找到keychain Sharing选项 打开开关即可