PLVChatroomManager
Objective-C
@interface PLVChatroomManager : NSObject
/// 委托代理
@property (nonatomic, weak) id<PLVChatroomManagerProtocol> delegate;
/// 当前场次ID,需在Demo层进行设置,并监听数据变化实时更新
@property (nonatomic, copy) NSString * _Nullable sessionId;
/// 当前登录用户是否是特殊身份(譬如讲师),默认为NO,为YES时字段banned永远为NO
@property (nonatomic, assign) BOOL specialRole;
/// socket处于已连接且登录成功的状态时为YES,默认为NO
@property (nonatomic, assign, readonly) BOOL online;
/// 聊天室是否被关闭,默认为NO
@property (nonatomic, assign, readonly) BOOL closeRoom;
/// 当前登录用户是否被禁言,默认为NO
@property (nonatomic, assign, readonly) BOOL banned;
/// 单例方法
+ (instancetype)sharedManager;
/// 发送提问消息
/// @param content 提问的文本内容
/// @return 发送结果,成功为YES,失败为NO
- (BOOL)sendQuesstionMessage:(NSString *)content;
/// 发送自定义消息
/// @param message 自定义消息数据模型
/// @return 发送结果,成功为YES,失败为NO
- (BOOL)sendCustonMessage:(PLVCustomMessage *)message;
/// 发送自定义消息
/// @param message 自定义消息数据模型
/// @param joinHistoryList 是否加入历史聊天记录,加入为YES,不加入为NO
/// @return 发送结果,成功为YES,失败为NO
- (BOOL)sendCustonMessage:(PLVCustomMessage *)message
joinHistoryList:(BOOL)joinHistoryList;
/// 发送文本消息,默认不需要回调msgId
/// @param message 文本消息数据模型
/// @return 发送结果,成功为YES,失败为NO
- (BOOL)sendSpeakMessage:(PLVSpeakMessage *)message;
/// 发送文本消息,发送成功执行callback
/// @param message 文本消息数据模型
/// @param callback 回调
/// @return 发送结果,成功为YES,失败为NO
- (BOOL)sendSpeakMessage:(PLVSpeakMessage *)message
callback:(void (^ _Nullable)(NSString *msgId))callback;
/// 发送回复消息
/// @param message 回复消息数据模型
/// @return 发送结果,成功为YES,失败为NO
- (BOOL)sendQuoteMessage:(PLVQuoteMessage *)message;
/// 发送回复消息,发送成功执行callback
/// @param message 回复消息数据模型
/// @param callback 回调
/// @return 发送结果,成功为YES,失败为NO
- (BOOL)sendQuoteMessage:(PLVQuoteMessage *)message
callback:(void (^ _Nullable)(NSString *msgId))callback;
/// 发送图片消息
/// 发送结果通过delegate通知
/// @param message 图片消息数据模型
/// @note 如果使用message.processImageData进行上传,数据不允许大于2mb
- (void)sendImageMessage:(PLVImageMessage *)message;
/// 发送图片表情消息
/// @param message 图片表情消息数据模型 根据sendState状态判断发送结果
- (BOOL)sendImageEmotionMessage:(PLVImageEmotionMessage *)message;
/// 发送点赞,新增点赞次数为1
/// 调用该方法之后,内部会进行数据累计,每5s发送一次socket消息,以及发送一次http统计
- (void)sendLikeEvent;
/// 发送点赞
/// 调用该方法之后,内部会进行数据累计,每5s发送一次socket消息,以及发送一次http统计
/// @param count 新增点赞次数
- (void)sendLikeEvent:(NSInteger)count;
/// 发送禁言消息,讲师端专用接口
/// @param banned YES-禁言 NO-取消禁言
/// @param userId 被禁言/取消禁言的用户ID
- (BOOL)sendBandMessage:(BOOL)banned bannedUserId:(NSString *)userId;
/// 发送踢人消息,讲师端专用接口
/// @param userId 被踢出的用户ID
- (BOOL)sendKickMessageWithUserId:(NSString *)userId;
/// 发送取消踢出(移入)消息,讲师端专用接口
/// @param userId 被移入的用户ID
- (BOOL)sendUnkickMessageWithUserId:(NSString *)userId;
/// 发送全体禁言、解禁消息,讲师端专用接口
/// @param closeRoom YES:全体禁言;NO:全体解禁
- (BOOL)sendCloseRoom:(BOOL)closeRoom;
/// 发送回复消息,发送成功执行callback
/// @param nickname 修改后昵称
/// @return 发送结果,成功为YES,失败为NO
- (BOOL)sendChangeNickname:(NSString *)nickname;
/// 发送上墙/下墙消息
/// @param msgId 需要上墙/下墙消息的id
/// @param toTop YES:上墙;NO:下墙
/// @return 发送结果,成功为YES,失败为NO
- (BOOL)sendPinMessageWithMsgId:(NSString *_Nullable)msgId toTop:(BOOL)toTop;
/// 开启管理器
/// @param delegate 用于设置代理,监听socket消息等
- (void)setupWithDelegate:(id<PLVChatroomManagerProtocol>)delegate channelId:(NSString *)channelId;
/// 消息overLen字段为YES时,使用该方法获取超长消息
/// @return YES-消息发出;NO-消息未发出,即callback不会执行
- (BOOL)overLengthSpeakMessageWithMsgId:(NSString *)msgId callback:(void (^)(NSString * _Nullable content))callback;
/// 退出前调用,用于资源释放、状态位清零
- (void)destroy;
@end
Swift
class PLVChatroomManager : NSObject
Undocumented
-
委托代理
Declaration
Objective-C
@property (nonatomic, weak) id<PLVChatroomManagerProtocol> _Nullable delegate;
Swift
weak var delegate: PLVChatroomManagerProtocol? { get set }
-
当前场次ID,需在Demo层进行设置,并监听数据变化实时更新
Declaration
Objective-C
@property (nonatomic, copy) NSString *_Nullable sessionId;
Swift
var sessionId: String? { get set }
-
当前登录用户是否是特殊身份(譬如讲师),默认为NO,为YES时字段banned永远为NO
Declaration
Objective-C
@property (nonatomic) BOOL specialRole;
Swift
var specialRole: Bool { get set }
-
socket处于已连接且登录成功的状态时为YES,默认为NO
Declaration
Objective-C
@property (nonatomic, readonly) BOOL online;
Swift
var online: Bool { get }
-
聊天室是否被关闭,默认为NO
Declaration
Objective-C
@property (nonatomic, readonly) BOOL closeRoom;
Swift
var closeRoom: Bool { get }
-
当前登录用户是否被禁言,默认为NO
Declaration
Objective-C
@property (nonatomic, readonly) BOOL banned;
Swift
var banned: Bool { get }
-
单例方法
Declaration
Objective-C
+ (nonnull instancetype)sharedManager;
Swift
class func shared() -> Self
-
发送提问消息
Declaration
Objective-C
- (BOOL)sendQuesstionMessage:(nonnull NSString *)content;
Swift
func sendQuesstionMessage(_ content: String) -> Bool
Parameters
content
提问的文本内容
Return Value
发送结果,成功为YES,失败为NO
-
发送自定义消息
Declaration
Objective-C
- (BOOL)sendCustonMessage:(nonnull PLVCustomMessage *)message;
Swift
func sendCustonMessage(_ message: PLVCustomMessage) -> Bool
Parameters
message
自定义消息数据模型
Return Value
发送结果,成功为YES,失败为NO
-
发送自定义消息
Declaration
Objective-C
- (BOOL)sendCustonMessage:(nonnull PLVCustomMessage *)message joinHistoryList:(BOOL)joinHistoryList;
Swift
func sendCustonMessage(_ message: PLVCustomMessage, joinHistoryList: Bool) -> Bool
Parameters
message
自定义消息数据模型
joinHistoryList
是否加入历史聊天记录,加入为YES,不加入为NO
Return Value
发送结果,成功为YES,失败为NO
-
发送文本消息,默认不需要回调msgId
Declaration
Objective-C
- (BOOL)sendSpeakMessage:(nonnull PLVSpeakMessage *)message;
Swift
func send(_ message: PLVSpeakMessage) -> Bool
Parameters
message
文本消息数据模型
Return Value
发送结果,成功为YES,失败为NO
-
发送文本消息,发送成功执行callback
Declaration
Objective-C
- (BOOL)sendSpeakMessage:(nonnull PLVSpeakMessage *)message callback:(void (^_Nullable)(NSString *_Nonnull))callback;
Swift
func send(_ message: PLVSpeakMessage, callback: ((String) -> Void)? = nil) -> Bool
Parameters
message
文本消息数据模型
callback
回调
Return Value
发送结果,成功为YES,失败为NO
-
发送回复消息
Declaration
Objective-C
- (BOOL)sendQuoteMessage:(nonnull PLVQuoteMessage *)message;
Swift
func send(_ message: PLVQuoteMessage) -> Bool
Parameters
message
回复消息数据模型
Return Value
发送结果,成功为YES,失败为NO
-
发送回复消息,发送成功执行callback
Declaration
Objective-C
- (BOOL)sendQuoteMessage:(nonnull PLVQuoteMessage *)message callback:(void (^_Nullable)(NSString *_Nonnull))callback;
Swift
func send(_ message: PLVQuoteMessage, callback: ((String) -> Void)? = nil) -> Bool
Parameters
message
回复消息数据模型
callback
回调
Return Value
发送结果,成功为YES,失败为NO
-
发送图片消息 发送结果通过delegate通知
Note
如果使用message.processImageData进行上传,数据不允许大于2mbDeclaration
Objective-C
- (void)sendImageMessage:(nonnull PLVImageMessage *)message;
Swift
func send(_ message: PLVImageMessage)
Parameters
message
图片消息数据模型
-
发送图片表情消息
Declaration
Objective-C
- (BOOL)sendImageEmotionMessage:(nonnull PLVImageEmotionMessage *)message;
Swift
func send(_ message: PLVImageEmotionMessage) -> Bool
Parameters
message
图片表情消息数据模型 根据sendState状态判断发送结果
-
发送点赞,新增点赞次数为1 调用该方法之后,内部会进行数据累计,每5s发送一次socket消息,以及发送一次http统计
Declaration
Objective-C
- (void)sendLikeEvent;
Swift
func sendLikeEvent()
-
发送点赞 调用该方法之后,内部会进行数据累计,每5s发送一次socket消息,以及发送一次http统计
Declaration
Objective-C
- (void)sendLikeEvent:(NSInteger)count;
Swift
func sendLikeEvent(_ count: Int)
Parameters
count
新增点赞次数
-
发送禁言消息,讲师端专用接口
Declaration
Objective-C
- (BOOL)sendBandMessage:(BOOL)banned bannedUserId:(nonnull NSString *)userId;
Swift
func sendBandMessage(_ banned: Bool, bannedUserId userId: String) -> Bool
Parameters
banned
YES-禁言 NO-取消禁言
userId
被禁言/取消禁言的用户ID
-
发送踢人消息,讲师端专用接口
Declaration
Objective-C
- (BOOL)sendKickMessageWithUserId:(nonnull NSString *)userId;
Swift
func sendKickMessage(withUserId userId: String) -> Bool
Parameters
userId
被踢出的用户ID
-
发送取消踢出(移入)消息,讲师端专用接口
Declaration
Objective-C
- (BOOL)sendUnkickMessageWithUserId:(nonnull NSString *)userId;
Swift
func sendUnkickMessage(withUserId userId: String) -> Bool
Parameters
userId
被移入的用户ID
-
发送全体禁言、解禁消息,讲师端专用接口
Declaration
Objective-C
- (BOOL)sendCloseRoom:(BOOL)closeRoom;
Swift
func sendCloseRoom(_ closeRoom: Bool) -> Bool
Parameters
closeRoom
YES:全体禁言;NO:全体解禁
-
发送回复消息,发送成功执行callback
Declaration
Objective-C
- (BOOL)sendChangeNickname:(nonnull NSString *)nickname;
Swift
func sendChangeNickname(_ nickname: String) -> Bool
Parameters
nickname
修改后昵称
Return Value
发送结果,成功为YES,失败为NO
-
发送上墙/下墙消息
Declaration
Objective-C
- (BOOL)sendPinMessageWithMsgId:(NSString *_Nullable)msgId toTop:(BOOL)toTop;
Swift
func sendPinMessage(withMsgId msgId: String?, toTop: Bool) -> Bool
Parameters
msgId
需要上墙/下墙消息的id
toTop
YES:上墙;NO:下墙
Return Value
发送结果,成功为YES,失败为NO
-
开启管理器
Declaration
Objective-C
- (void)setupWithDelegate:(nonnull id<PLVChatroomManagerProtocol>)delegate channelId:(nonnull NSString *)channelId;
Swift
func setup(withDelegate delegate: PLVChatroomManagerProtocol, channelId: String)
Parameters
delegate
用于设置代理,监听socket消息等
-
消息overLen字段为YES时,使用该方法获取超长消息
Declaration
Objective-C
- (BOOL)overLengthSpeakMessageWithMsgId:(nonnull NSString *)msgId callback:(nonnull void (^)(NSString *_Nullable)) callback;
Swift
func overLengthSpeakMessage(withMsgId msgId: String, callback: @escaping (String?) -> Void) -> Bool
Return Value
YES-消息发出;NO-消息未发出,即callback不会执行
-
退出前调用,用于资源释放、状态位清零
Declaration
Objective-C
- (void)destroy;
Swift
func destroy()