CNLiveXMPPManager.h 1.61 KB
//
//  XMPPManager.h
//  XMPP
//
//  Created by CNLive on 13-5-16.
//  Copyright (c) 2013年 CNLive. All rights reserved.
//

#import <Foundation/Foundation.h>

@protocol XMPPManagerDelegate <NSObject>

@optional

- (void)getAccessPermissionsFailed:(NSError *)error; // 鉴权失败回调

- (void)connectChatRoomFailed:(NSError *)error; // 加入聊天室失败

- (void)connectXmppSuccess; // 连接xmpp成功

- (void)xmppDidDisconnect:(NSError *)error; // xmpp主动或者被动断开连接

- (void)didJoinRoom:(NSString *)roomName; // 已经加入聊天室

- (void)didLeaveRoom:(NSString *)roomName; // 已经离开聊天室

- (void)receivedMessage:(NSString *)msg fromRoom:(NSString *)roomName; // 从聊天室收到的消息

- (void)sendMessageFailed:(NSError *)error; // 发送消息失败

- (void)nicknameConflict:(NSString *)nickname; // 昵称冲突

@end

@interface CNLiveXMPPManager : NSObject

// 是否接收历史消息
@property (nonatomic, assign) BOOL receiveHistory;

// 代理
@property (nonatomic, assign) id<XMPPManagerDelegate> delegate;

// 初始化方法
/*
 如果autoReconnect为YES,- (void)reconnection 方法失效,XMPP会自动断线重连
 */
- (instancetype)initWithChatRoomId:(NSString *)roomId appId:(NSString *)appId app_key:(NSString *)appKey autoReconnect:(BOOL)reconnect;

// 使用某一昵称加入聊天室
- (void)joinRoomWithNickName:(NSString *)nick;

// 发送消息
- (void)sendMessage:(NSString *)message;

// 更换昵称
- (void)changeNickname:(NSString*)nickname;

// 重新连接xmpp
- (void)reconnection;

// 离开聊天室
- (void)leaveRoom;

// 断开xmpp链接
- (void)disconnect;
@end